SQL 按类别求和并按 month/year 分组
SQL Sum by Category and group by month/year
正在尝试对按类型制造并由 month/year 汇总的总产品求和。
三个表:
- Order_Line:id,batch_date_stop,item_id
- Order_Line_详细信息: order_line_id, batched_qty, item_id
- Mill_Item_Map: 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)
尝试在分组依据
中仅使用年份和月份
Group BY YEAR(OL.batch_date_stop), MONTH(OL.batch_date_stop)
正在尝试对按类型制造并由 month/year 汇总的总产品求和。
三个表:
- Order_Line:id,batch_date_stop,item_id
- Order_Line_详细信息: order_line_id, batched_qty, item_id
- Mill_Item_Map: 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)
尝试在分组依据
中仅使用年份和月份Group BY YEAR(OL.batch_date_stop), MONTH(OL.batch_date_stop)