这是我的T-SQL代码:如何根据列的值对一个记录集的总和进行求和?
SELECT H.ORDER_DATE 'Order Date',
SUM(D.WORK_QTY) 'Work Qty',
SUM(TD. TRAN_QTY) 'Transaction Qty',
IM.PUMJ_CD
FROM [dbo].[ORDER_HEADER] H
LEFT JOIN ORDER_DETAIL D ON D.ORDER_ID = H.ORDER_ID
LEFT JOIN TRAN_HEADER T ON T.ORDER_ID = H.ORDER_ID
LEFT JOIN TRAN_DETAIL TD ON TD.TRAN_ID = T.TRAN_ID
LEFT JOIN TRAN_TYPE TT ON TT.TRAN_TYPE_ID = TD.TRAN_TYPE_ID
LEFT JOIN ITM_MST IM ON IM.ITM_NM = D.ITEM_NAME
WHERE TD.TRAN_TYPE_ID = '231'
AND PUMJ_CD IN ('BF','BR','SHFT','BJ','TJ')
AND H.ORDER_DATE BETWEEN '20170403' AND '20170407'
GROUP BY IM.PUMJ_CD,
H.ORDER_DATE
ORDER BY H.ORDER_DATE
,并返回记录集:
Order Date | Work Qty | Transaction Qty | PUMJ_CD
-------------------------------------------------
20170403 | 10 | 7 | BF
20170403 | 24 | 12 | BR
20170403 | 16 | 14 | TJ
20170404 | 15 | 10 | BF
是否有可能从记录集求和行,其中: “订购日期”是同样,和 PUMJ_CD IN( 'BF', 'BR') ,并有导致记录集的样子:
Order Date | Work Qty | Transaction Qty | PUMJ_CD
-------------------------------------------------
20170403 | 34 | 19 | TOTAL
20170403 | 16 | 14 | TJ
20170404 | 15 | 10 | BF
我一直在试图找出一种方法在一个查询中做到这一点,但由于我的知识有限,我没有取得成功。我尝试过在线查找,但我发现很难用谷歌中的问题来描述我需要的内容。如果任何人能够帮助或指出我正确的方向,那将是非常感谢。
这工作!我只需要在第二个SELECT语句中替换句号错误类型,并且查询成功执行。我还添加了一个 ORDER BY H.ORDER_DATE 以按顺序获取行。感谢您的帮助! –