2016-08-29 7 views
2

유형별로 제조 한 총 제품을 월/연도로 요약합니다.SQL 월별/연도 별 카테고리 및 그룹 합계

세 개의 테이블 :

  • ORDER_LINE : order_line_id, batched_qty,
  • Mill_Item_Map
  • 을 ITEM_ID : 아이디, batch_date_stop는
  • Order_Line_Detail
  • 을 ITEM_ID, ITEM_ID item_class

아래 스크립트 작업 각 카테고리에 대해 매월 별도의 라인을 만들고 있습니다. 각 제품마다 한 줄 씩 원합니다. 내가 뭘 놓치고 있니?

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