2014-05-14 18 views
0

總體水平值,我想在A級彙總數據,也顯示出對細節向下一級,說B. 這裏是我的查詢在product_line級別(A)彙總的金額。結合了低級別的細節

SELECT 
    pl.business_unit AS "BU" 
,p.prod_line 
,SUM(i.inv_amt) AS "Amount" 
FROM invoice i 
LEFT JOIN product p ON p.item_num = i.item_num 
LEFT JOIN product_level pl ON pl.pl_num = p.pl_num 
WHERE i.date BETWEEN '01-APR-2014' AND '30-APR-2014' 
GROUP BY pl.business_unit 
     ,p.prod_line 
HAVING SUM(i.inv_amt) > 500000 

invoice表我有一個item_desc場(B級)。所有項目描述捲起產品線描述,但如果我將item_desc添加到主查詢中,它將不會正確聚合。我已嘗試所有類型的子查詢FROM and SELECT沒有正確的結果。我以前沒有使用子查詢,但認爲這是我需要的。如果是這樣,我將如何完成在prod_line級別的聚合,同時包括每行的item_desc?謝謝你的幫助!

+1

您可以發佈與預期的結果一些示例數據?既然你提到它不正確,那麼它似乎每個BU /產品線都有不同的值。 – sgeddes

回答

0

如果產品線是一對一的映射ITEM_DESC,那麼你可以在MAX(ITEM_DESC)添加到您的查詢

SELECT 
pl.business_unit AS "BU" 
,p.prod_line 
,max(p.item_desc) 
,SUM(i.inv_amt) AS "Amount" 
FROM invoice i 
LEFT JOIN product p ON p.item_num = i.item_num 
LEFT JOIN product_level pl ON pl.pl_num = p.pl_num 
WHERE i.date BETWEEN '01-APR-2014' AND '30-APR-2014' 
GROUP BY pl.business_unit 
     ,p.prod_line 
HAVING SUM(i.inv_amt) > 500000