2016-03-04 64 views
0

我有我的彙總查詢在列上加入並計算彙總查詢?

Select 
     CASE 
     WHEN (GROUPING(p. product_name) = 1) THEN 'Total' 
     ELSE p. product_name END AS ProductName, 
    ((o.item_price - o.discount_amount)* o.quantity) as Total_Amount 

    from 
     products as p 
    inner join 
     order_items as o on o.product_id = p.product_id 
    group by 
     p.product_name, ((o.item_price - o.discount_amount)* o.quantity) with rollup 

它返回最後一行NULL值亙古不給總親切地解決這個問題,爲什麼我得到的總空

Actualy我使用記錄加入和計算像ITEMPRICE減去折扣,得到通過數量乘以現在開始計算費爾德應用ROLLUP

+0

sQL sERVER 2008R2 –

+1

您可以添加一些示例記錄和預期輸出嗎?我們無法訪問您的表格,因此我們需要此信息來解除條件。 –

回答

1

您需要在select聚合函數:

Select (CASE WHEN (GROUPING(p. product_name) = 1) THEN 'Total' 
      ELSE p.product_name 
     END) AS ProductName, 
     sum((o.item_price - o.discount_amount)*o.quantity) as Total_Amount 
from products p inner join 
    order_items o 
    on o.product_id = p.product_id 
group by p.product_name with rollup; 
+0

你能告訴我爲什麼我們在第一行 –

+0

@GLOBALTECH的情況下等於1。 。 。這就是'GROUPING()'函數的工作原理:https://msdn.microsoft.com/en-us/library/ms178544.aspx。 –