我很难让这个查询返回1行中的总和。
SELECTst.[code], SUM(whst.WHQtyOnHand)
FROM dbo.[StkItem] st, dbo.WhseStk whst
WHERE whst.WHWhseID in (3, 4)
AND whst.WHStockLink = st.StockLink
AND st.Code = 'BNV203N'
GROUP BY st.[Code], whst.WHWhseID, whst.WHStockLink
以下是我得到的结果:
Code WHQtyOnHand
---------------------------
BNV203N 694
BNV203N 3748
我总需要它们。
答案 0 :(得分:5)
您只想按st.Code
分组。我也不再遵守笛卡尔join
和where
条款的习惯。只需使用正确的INNER JOIN
:
SELECT st.[code], SUM(whst.WHQtyOnHand)
FROM dbo.[StkItem] st
INNER JOIN dbo.WhseStk whst
ON whst.WHStockLink = st.StockLink
WHERE whst.WHWhseID IN (3,4)
AND st.Code = 'BNV203N'
GROUP BY st.[Code]
答案 1 :(得分:4)
更改此行:
GROUP BY st.[Code], whst.WHWhseID, whst.WHStockLink
到
GROUP BY st.[Code]
按WHWhseID分组时,您可以分解这些行。