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

Cyp*_*Net 1 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
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果:

Code        WHQtyOnHand
---------------------------
BNV203N        694
BNV203N       3748
Run Code Online (Sandbox Code Playgroud)

我总需要它们.

Ric*_*ner 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]
Run Code Online (Sandbox Code Playgroud)

  • 赞成建议正确的(非史前)`join`语法 (3认同)