2014-07-21 50 views
-1

我需要下表呈現以現在多少漢堡包客戶已納了SQL計特定項目

客戶|漢堡1數量|漢堡2數量|

我有兩個表:

  • 客戶表:與客戶ID,名稱
  • 交易秩序:與TransactionOrderID客戶ID和BurgerCode

我有6個漢堡的代碼,爲每一個我需要添加一個列,那麼最好的方法是什麼?

+0

用'pivot' http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx – podiluska

+0

你可以請張貼 – mohan111

+0

什麼是您使用的樣本數據呈現您的數據? –

回答

1

如果你不想使用樞軸,你可以嘗試這樣的事情。

WITH cte AS 
    ( 
    SELECT 
     CustomerID, 
     SUM(CASE WHEN BurgerCode LIKE 'BurgerCode1' THEN 1 ELSE 0 END) AS Burger1Qty, 
     SUM(CASE WHEN BurgerCode LIKE 'BurgerCode2' THEN 1 ELSE 0 END) AS Burger2Qty, 
     SUM(CASE WHEN BurgerCode LIKE 'BurgerCode3' THEN 1 ELSE 0 END) AS Burger3Qty, 
     SUM(CASE WHEN BurgerCode LIKE 'BurgerCode4' THEN 1 ELSE 0 END) AS Burger4Qty, 
     SUM(CASE WHEN BurgerCode LIKE 'BurgerCode5' THEN 1 ELSE 0 END) AS Burger5Qty, 
     SUM(CASE WHEN BurgerCode LIKE 'BurgerCode6' THEN 1 ELSE 0 END) AS Burger6Qty 
    FROM TransactionOrders 
    GROUP BY CustomerID 
    ) 
    SELECT c.*, ct.Name CustomerName FROM cte c JOIN CustomerTable ct ON ct.CustomerID = c.CustomerID