>scus ami sono sbagliato deve andare di seguito in accodamento
Prova a dare un'occhiata a questo esempio:
USE tempdb;
GO
CREATE TABLE #TempTableSource
(
Movimenti Int
, CodStato Int
, Nazione Varchar(30)
, Provincia Varchar(30)
, TipoMov Varchar(30)
)
GO
CREATE TABLE #Tab_Temp
(
Prov Varchar(250)
, ArrIta Int
, ParIta Int
, Naz Varchar(250)
, ArrStr Int
, ParStr Int
)
GO
INSERT INTO #TempTableSource (Movimenti, CodStato, Nazione, Provincia, TipoMov)
VALUES (15, 0, 'Italia', 'Teramo', 'A')
INSERT INTO #TempTableSource (Movimenti, CodStato, Nazione, Provincia, TipoMov)
VALUES (30, 0, 'Italia', 'Latina', 'A')
INSERT INTO #TempTableSource (Movimenti, CodStato, Nazione, Provincia, TipoMov)
VALUES (30, 0, 'Italia', 'Roma', 'A')
INSERT INTO #TempTableSource (Movimenti, CodStato, Nazione, Provincia, TipoMov)
VALUES (30, 7, 'Germania', '', 'A')
INSERT INTO #TempTableSource (Movimenti, CodStato, Nazione, Provincia, TipoMov)
VALUES (15, 0, 'Italia', 'Roma', 'P')
INSERT INTO #TempTableSource (Movimenti, CodStato, Nazione, Provincia, TipoMov)
VALUES (15, 0, 'Italia', 'Teramo', 'P')
INSERT INTO #TempTableSource (Movimenti, CodStato, Nazione, Provincia, TipoMov)
VALUES (15, 7, 'Germania', '', 'P')
INSERT INTO #TempTableSource (Movimenti, CodStato, Nazione, Provincia, TipoMov)
VALUES (25, 0, 'Italia', 'Latina', 'P')
GO
SELECT
Nazione
, Provincia
, ArrIta = SUM(T.ArriviItalia)
, ParIta = SUM(T.PartenzeItalia)
, ArrStr = SUM(T.ArriviEstero)
, ParStr = SUM(T.PartenzeEstero)
FROM
(
SELECT
PartenzeItalia = CASE WHEN TipoMov = 'P' THEN Movimenti ELSE 0 END
, ArriviItalia = CASE WHEN TipoMov = 'A' THEN Movimenti ELSE 0 END
, PartenzeEstero = 0
, ArriviEstero = 0
, Nazione
, Provincia
FROM #TempTableSource
WHERE
CodStato = 0
UNION ALL
SELECT
PartenzeItalia = 0
, ArriviItalia = 0
, PartenzeEstero = CASE WHEN TipoMov = 'P' THEN Movimenti ELSE 0 END
, ArriviEstero = CASE WHEN TipoMov = 'A' THEN Movimenti ELSE 0 END
, Nazione
, Provincia
FROM #TempTableSource
WHERE
CodStato <> 0
) T
GROUP BY
Nazione
, Provincia
DROP TABLE #TempTableSource
DROP TABLE #Tab_Temp
GO
Ciao!
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org