Count di 2 tabelle
Mi e’ capitato in questi giorni di dover fare una query per controllare il numero di record all’interno di due tabelle (ad es. Customers e Orders), ovviamente la mia intenzione era quella di fare tutto con un’unica chiamata.
Un modo per fare questa query potrebbe essere il seguente:
(SELECT COUNT (*) FROM Northwind.dbo.Customers) UNION ALL (SELECT COUNT (*) FROM Northwind.dbo.Orders)
Ottenendo il seguente risultato:
Ho avuto quel che volevo su di un’unica colonna. Ma se io volessi entrambi sulla stessa riga ma su due colonne diverse?
Per fare questo si potrebbe utilizzare la seguente query:
SELECT (SELECT COUNT (*) FROM Northwind.dbo.Customers) AS CustomersCount, (SELECT COUNT (*) FROM Northwind.dbo.Orders) AS OrdersCount
Questa query ha il seguente risultato:
Cosi’ facendo ho un modo chiaro per identificare il risultato delle 2 tabelle. Purtroppo questa query funziona in SQL Server ma non in Access. C’e’ un modo per scrivere la stessa query in un SQL che vada bene per entrambi?
Ecco la soluzione:
SELECT Sum(Cust) AS CustomersCount, Sum(Ord) AS OrdersCount FROM
(
SELECT COUNT (*) AS Cust, 0 AS Ord FROM Northwind.dbo.Customers
UNION ALL
SELECT 0 AS Cust, COUNT (*) AS Ord FROM Northwind.dbo.Orders
) AS T
Come si puo’ vedere, il risultato e’ identico anche in Access:
Pubblicato il: 8 maggio 2010 10:46; 0 commenti so far.
Tags: Programmazione

- Page rendering time: 19 millisecs