Můžete použít PIVOT SQL Serveru operátor
SELECT *FROM ( SELECT P.ProductName , C.CustName , T.Amount FROM Transactions AS T INNER JOIN Product AS P ON T.ProductID =P.ProductID INNER JOIN Customer AS C ON T.CustomerID =C .CustomerID WHERE T.TranDate BETWEEN '2011-01-01' AND '2011-03-31' ) SPIVOT (SUM (Částka) PRO ProductName IN ([Auto], [Cycle], [Scooter])) pvt
Testovací data
;WITH q AS ( SELECT [Produkt] ='Auto', [Zákazník] ='Armstrong', [Částka] =80115,50 UNION ALL SELECT 'Auto', 'Michelle', 36571.85 UNION ALL SELECT 'Auto ', 'Schmidt', 45000,65 UNION ALL SELECT 'Cyklus', 'Michelle', 15000,00 UNION ALL SELECT 'Cyklus', 'Ronald', 25000,00 UNION ALL SELECT 'Skútr' UNISo 52 SELECT 'Scooter', 'ALLPeter', ALLPeter 'Ronald', 98547.52 UNION ALL SELECT 'Scooter', 'Schmidt', 54000.25 )SELECT Customer , Auto =ISNULL(Auto, 0) , Cycle =ISNULL(Cyklus, 0) , Scooter =ISNULL(Scooter, Total =ISNULL(Auto, 0) + ISNULL(Cyklus, 0) + ISNULL(Skútr, 0)OD ( SELECT * FROM q ) SPIVOT (SOUČET (Částka) PRO produkt V ([Auto], [Cyklus], [Skútr])) pvt
Výstup
skútr zákaznických automobilů TotalArmstrong 80115,50 0,00 0,00 80115,50 Michelle 36571,85 15000,00 0,00 51571,85peterson 0,00 0,00 82658,23 82658,23ronald 0,00 25000,00 98547.52SchMIDT 45050505000 540,23505000 54050505000 540505.52.52.5209050.