Sql id,其中列有两个条件

Sql id,其中列有两个条件,sql,sql-server,Sql,Sql Server,我有一张加入和离开公司的客户表 ID ActiveFrom ActiveTo 例如,我有一个where子句 where ActiveFrom <= '20170101' and Activeto < '20170201' 我想把这样做的客户排除在离开公司但又回来的客户之外 所以我只想返回id 2 请帮助您可以试试这个 SELECT * FROM Customer C1 WHERE C1.ActiveFrom <= '20170101' AND C1.

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

ID ActiveFrom ActiveTo
例如,我有一个where子句

where ActiveFrom <= '20170101' 
  and Activeto < '20170201'
我想把这样做的客户排除在离开公司但又回来的客户之外

所以我只想返回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
您可以在此处找到更多信息:

这是brill谢谢,最棒的是将C2.ActiveTo为空更改为C2.ActiveFrom>='20170101',这是fab谢谢
SELECT *
FROM tablename
WHERE (SELECT id FROM tablename WHERE activeTo is null) <> id
GROUP By id