一列中两种不同条件的总和

时间:2020-11-04 05:09:45

标签: sql sql-server ssms

我有这个T-SQL查询

SELECT 
    ProductId, SUM(Quantity) AS Quantity 
FROM 
    ProductStockIn 
WHERE  
    OrgName = @OrgName
    AND Statecode = 'ADD' OR Statecode = 'ORDER' 
    AND CreatedOn BETWEEN DATEADD(MS, 3, @LastGenerationDate) AND @GenerationDate 
GROUP BY 
    ProductId) stockin  ON p.ProductId = stockin.ProductId

我有这种桌子

|quantity | StateCode | CreatedOn |
+---------+-----------+-----------+
|400      | ORDER     | <date>    |
|400      | ADD       | <date>    |

我想对StateCode等于'Order'和'Add'的所有数量求和,但是在我的查询中,当我尝试条件StateCode ='ADD'AND St​​ateCode ='ORDER'时,它仅选择StateCode = ADD ..什么都没有选择。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下-

SELECT ProductId, SUM(Quantity) AS Quantity 
FROM ProductStockIn 
WHERE  OrgName = @OrgName AND Statecode in( 'ADD','ORDER')
AND CreatedOn BETWEEN DATEADD(MS,3,@LastGenerationDate)
AND @GenerationDate 
GROUP BY ProductId
having count(distinct Statecode)=2
相关问题