Code :
Declare @tmpTable TABLE (Client varchar(50), GroupProduit varchar(50), SousGroupeProduit varchar(50), Periode int, CA int) INSERT @tmpTable (Client,GroupProduit,SousGroupeProduit,Periode,CA) VALUES ('Toto', 'Voiture', 'Freins', 201011, 134 ) INSERT @tmpTable (Client,GroupProduit,SousGroupeProduit,Periode,CA) VALUES ('Toto', 'Maison', 'Porte', 200911, 267 ) INSERT @tmpTable (Client,GroupProduit,SousGroupeProduit,Periode,CA) VALUES ('Toto', 'Voiture', 'Freins', 200911, 389 ) INSERT @tmpTable (Client,GroupProduit,SousGroupeProduit,Periode,CA) VALUES ('Toto', 'Voiture', 'roue', 201011, 471 ) SELECT Client, GroupProduit, SousGroupeProduit, ISNULL([200911],0) [200911], ISNULL([201011],0) [201011] FROM (SELECT Client,GroupProduit,SousGroupeProduit,Periode, CA FROM @tmpTable) AS SourceTable Pivot (SUM(SourceTable.CA) FOR SourceTable.Periode IN ([200911], [201011])) AS PivotTable SELECT ISNULL(a.Client, b.Client) Client, ISNULL(a.GroupProduit, b.GroupProduit) GroupProduit, ISNULL(a.SousGroupeProduit, b.SousGroupeProduit) SousGroupeProduit, ISNULL(a.Periode, 200911) Periode1, ISNULL(a.CA,0) CA1, ISNULL(b.Periode, 201011) Periode2, ISNULL(b.CA,0) CA2 FROM @tmpTable a Full JOIN @tmpTable b ON b.Client = a.Client AND b.GroupProduit = a.GroupProduit AND b.SousGroupeProduit = a.SousGroupeProduit AND b.Periode != a.Periode WHERE (a.Periode = 200911 OR a.Periode IS NULL) AND (b.Periode = 201011 OR b.Periode IS NULL)
|