>Se al contrario quello che ti serve è una rappresentazione su
>riga dei tuoi conteggi, allora ti consiglio il seguente codice.
>Fai attenzione però, poichè non è possibile utilizzarlo nelle
>viste (che sono tabelle virtuali e che quindi non permettono
>l'utilizzo di parametri e/o variabili). Comunque sia puoi scriverti
>una stored procedure apposita oppure una funzione che ti ritorni
>una tabella.
>
>-- variabili di conteggio
>DECLARE @cx1 int,
> @cx2 int,
> @cx3 int,
> @cx4 int
>
>-- ricavo i conteggi presi distintamente
>SELECT @cx1 = COUNT(*) FROM tabella1
>SELECT @cx2 = COUNT(*) FROM tabella2
>SELECT @cx3 = COUNT(*) FROM tabella3
>SELECT @cx4 = COUNT(*) FROM tabella4
>
>-- ritorno il resultset su riga
>select @cx1, @cx2, @cx3, @cx4
>
Ciao Alx81,
Propongo un esempio che può essere tranquillamente utilizzato anche in una vista:
USE Northwind;
SELECT
MAX(Categories) AS Categories
, MAX(Customers) AS Customers
, MAX(Employees) AS Employees
, MAX(Orders) AS Orders
FROM (
SELECT
COUNT(*) AS Categories
, 0 AS Customers
, 0 AS Employees
, 0 AS Orders
FROM dbo.Categories
UNION ALL
SELECT
0
, COUNT(*)
, 0
, 0
FROM dbo.Customers
UNION ALL
SELECT
0
, 0
, COUNT(*)
, 0
FROM dbo.Employees
UNION ALL
SELECT
0
, 0
, 0
, COUNT(*)
FROM dbo.Orders
) AS Q;
/* Output:
Categories Customers Employees Orders
----------- ----------- ----------- -----------
8 91 9 830
(1 row(s) affected)
*/
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org