2016-08-29 10 views
2

タイプ別に製造され、月/年で集計された製品の合計を集計しようとしています。SQLカテゴリ別および月別のグループ別合計

3つのテーブル:

  • ORDER_LINE:ID、batch_date_stopは、Order_Line_Detail
  • をITEM_ID:order_line_id、batched_qtyを、Mill_Item_Map
  • をITEM_ID:ITEM_IDを、

item_class以下のスクリプトの作業毎月各カテゴリごとに別の行を作成しています。私は各製品の合計で1つのラインが欲しいです。私は何が欠けていますか?

SELECT 
YEAR(OL.batch_date_stop) as [Manf Year], 
MONTH(OL.batch_date_stop) as [Manf Month], 
SUM(case when MIM.item_class is not null then OLD.batched_qty else 0 end)/2000 AS Total, 
SUM(case when MIM.item_class = 'CAKE' then OLD.batched_qty else 0 end)/2000 AS [Cake], 
SUM(case when MIM.item_class = 'PELLET' then OLD.batched_qty end)/2000 AS [Pellet], 
SUM(case when MIM.item_class = 'MINERAL' then OLD.batched_qty end)/2000 AS [Mineral], 
SUM(case when MIM.item_class = 'MIX' then OLD.batched_qty end)/2000 AS [Mix], 
SUM(case when MIM.item_class = 'GRAIN' then OLD.batched_qty end)/2000 AS [Grain] 
FROM Order_Line OL 
JOIN order_line_detail OLD ON OLD.order_line_id = OL.id 
JOIN mill_item_map MIM ON MIM.item_id = OL.item_id 
WHERE YEAR(OL.batch_date_stop) = 2016 and 
OLD.sequence_number = 0 
Group BY MIM.item_class, YEAR(OL.batch_date_stop), MONTH(OL.batch_date_stop) 
ORDER BY YEAR(OL.batch_date_stop), MONTH(OL.batch_date_stop) 

enter image description here

+0

により、グループ内で唯一の年と月を使用してみてください。 – Hogan

答えて

1

私はmin.item_classが今まであなたがそれに参加し、内側をやっているnullにできないと思います

Group BY YEAR(OL.batch_date_stop), MONTH(OL.batch_date_stop) 
+0

それはうまくいった。ありがとうございました! – sheehan46

関連する問題