Friday, March 6, 2015

How do I aggregate on more than one column within a PIVOT

You've either use two queries with PIVOT operator and join between them


or much easier method is to use conventional crosstabbing query like below



SELECT
[CustomerID],
SUM(CASE WHEN [ShipMethodID] = 1 THEN freight END) AS freight1,
MAX(CASE WHEN [ShipMethodID] = 1 THEN [CurrencyRateID] END) AS [CurrencyRateID1],
SUM(CASE WHEN [ShipMethodID] = 2 THEN freight END) AS freight2,
MAX(CASE WHEN [ShipMethodID] = 2 THEN [CurrencyRateID] END) AS [CurrencyRateID2],
SUM(CASE WHEN [ShipMethodID] = 3 THEN freight END) AS freight3,
MAX(CASE WHEN [ShipMethodID] = 3 THEN [CurrencyRateID] END) AS [CurrencyRateID3]
FROM [AdventureWorks2012].[Sales].[SalesOrderHeader]
GROUP BY [CustomerID]





Please Mark This As Answer if it solved your issue

Please Vote This As Helpful if it helps to solve your issue

Visakh

----------------------------

My Wiki User Page

My MSDN Page

My Personal Blog

My Facebook Page


No comments:

Post a Comment