PIVOT und JOIN zusammen verwenden

Betrachten Sie diese Abfrage:

SELECT [Order Details].OrderID, c.CategoryName, COUNT(c.CategoryID) FROM [Order Details] INNER JOIN Products p ON p.ProductID = [Order Details].ProductID INNER JOIN Categories c ON c.CategoryID = p.CategoryID GROUP BY [Order Details].OrderID, c.CategoryName ORDER BY [Order Details].OrderID 

Diese Abfrage gibt dieses Ergebnis zurück (Usnig Northwind Database):

Bildbeschreibung hier eingeben

Ich möchte Pivot mit Join verwenden, um dieses Ergebnis zu erhalten:

 OrderID Condiments Produce Seafood Condiments Grains/Cereals ... -------------------------------------------------------------------------------------- 10250 1 1 1 0 0 ... 10251 1 0 0 0 2 ... ... 

Wie kann ich das machen?

Vielen Dank

   
 WITH T AS (SELECT [Order Details].OrderID, c.CategoryName, c.CategoryID FROM [Order Details] INNER JOIN Products p ON p.ProductID = [Order Details].ProductID INNER JOIN Categories c ON c.CategoryID = p.CategoryID) SELECT * FROM T PIVOT ( COUNT (CategoryID) FOR CategoryName IN ( [Beverages], [Condiments], [Confections], [Dairy Products], [Grains/Cereals], [Meat/Poultry], [Produce], [Seafood]) ) AS pvt ORDER BY OrderID