id 其中列有两个条件



我有一个加入和离开公司的客户表

ID ActiveFrom ActiveTo

例如,我有一个 where 子句,它有

where ActiveFrom <= '20170101' 
and Activeto < '20170201'

但有时,由于交易,客户决定在几天后重新加入公司。

示例客户:

ID ActiveFrom ActiveTo
1  2000-01-01 2017-01-03
1  2017-01-28 Null
2  2000-01-01 2017-01-06

我想将这样做的客户排除在离开公司但回来的客户之外

所以我希望只返回 id 2

请帮忙

你可以试试这个。

SELECT * FROM Customer C1
WHERE C1.ActiveFrom <= '20170101' 
AND C1.Activeto < '20170201'
AND NOT EXISTS ( SELECT * FROM Customer C2
WHERE C1.ID = C2.ID
AND C2.ActiveTo IS NULL )

您可以在语句上使用子查询WHERE

SELECT *
FROM tablename
WHERE (SELECT id FROM tablename WHERE activeTo is null) <> id
GROUP By id

您可以在此处找到更多信息: https://www.techonthenet.com/sql_server/subqueries.php

最新更新