sql - 一列中两种不同条件的总和
问题描述
我有这个 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 .. 当我尝试 Condition StateCode = 'ADD' AND StateCode = 'ORDER' 时,没有选择任何内容.
解决方案
你可以试试下面的 -
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
推荐阅读
- r - r 提取具有字段名称的数据集的子集
- javascript - 使用重置按钮清除单选按钮信息的 Dom 修改
- python - 使用准备好的查询来更改 MySQL 更新命令 Python 3.5 中的列
- php - 过滤数组以使用单词边界保留包含搜索词的值
- ios - 字符串不通过segue?
- javascript - 表格仅按字母顺序排序,而不是按数字排序
- python - 如何正确使用 tf.metrics.recall_at_k?
- python - Python 3 IDLE (Shell) 但树莓派上只安装了 Python 2.7?
- javascript - 将复选框选择合并到 appendChild
- c++ - 使所有派生模板类成为 C++ 中其他类的朋友