Sql server 具有查询和多重比较的T-SQL问题
假设有这个表: |ORDER_NUMBER|CREATION_DATE| STATUS | |201700014587| 2017-08-01 |STATUS1 | |201700014587| 2017-08-03 |STATUS2 | |201700013131| 2017-08-07 |STATUS1 | |201700013131| 2017-08-11 |STATUS2 | |201700014587| 2017-08-13 |STATUS3 | |201700013131| 2017-08-14 |STATUS4 | |订单|编号|创建|日期|状态| |201700014587 | 2017-08-01 |状态1| |201700014587 | 2017-08-03 |状态2| |20170001313 | 2017-08-07 |状态1| |20170001313 | 2017-08-11 |状态2| |201700014587 | 2017-08-13 |状态3| |20170001313 | 2017-08-14 |状态4| 如何选择所有订单:Sql server 具有查询和多重比较的T-SQL问题,sql-server,Sql Server,假设有这个表: |ORDER_NUMBER|CREATION_DATE| STATUS | |201700014587| 2017-08-01 |STATUS1 | |201700014587| 2017-08-03 |STATUS2 | |201700013131| 2017-08-07 |STATUS1 | |201700013131| 2017-08-11 |STATUS2 | |201700014587| 2017-08-13 |STAT
STATUS1
、STATUS2
和STATUS4
2017-08-01
和2017-08-15
STATUS3
谢谢。您可以通过如下方式使用
不存在来实现这一点:
SELECT DISTINCT ORDER_NUMBER
FROM YourTable T
WHERE STATUS IN('STATUS1', 'STATUS2', 'STATUS4')
AND CREATION_DATE BETWEEN '20170801' AND '20170815'
AND NOT EXISTS
(
SELECT * FROM YourTable
WHERE ORDER_NUMBER = T.ORDER_NUMBER
AND STATUS = 'STATUS3'
);
到目前为止你试过什么?发布一些您测试过的代码,然后您将从中获得更多建议。您不需要notexists,因为您已经在中筛选了相同的代码condition@JayasuryaSatheesh当然,我不需要存在,因为OP只需要不存在状态为3的行的订单。