SQL SUM提供2行。我想要一排

时间:2016-04-19 15:28:37

标签: sql sql-server

我很难让这个查询返回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

我总需要它们。

2 个答案:

答案 0 :(得分:5)

您只想按st.Code分组。我也不再遵守笛卡尔joinwhere条款的习惯。只需使用正确的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分组时,您可以分解这些行。

相关问题