我有这个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 StateCode ='ORDER'时,它仅选择StateCode = ADD ..什么都没有选择。
答案 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