我有一个ID列表,每个ID都有一个代码和一个日期。每个ID可以有多个代码和日期。我需要找到仅包含代码X和代码Y(代码((X,Y))的ID以及早于540天前的日期(Date <= DATEADD(dd, -540, CURRENT_TIMESTAMP))
。排除X存在时
由于一个ID可以有多个代码和日期,我需要排除那些不符合我上述标准的ID。下面是一个例子。
ID Code Date
5525 X 2010-10-07
5525 Y 2010-11-25
5525 Y 2010-11-29
5525 Y 2010-10-06
**5525 X 2011-01-14**
**5525 X 2011-01-31**
5525 Y 2010-12-09
5525 Y 2010-10-15
5525 X 2010-10-18
5525 Y 2010-12-08
5525 X 2010-12-09
由于两个突出的ID必须大于-540天前,我需要排除所有的ID,即使它符合我原来的标准的日期。
我需要包含符合我的标准(code in (X,Y) and Date <= DATEADD(dd, -540, CURRENT_TIMESTAMP))
的ID,但如果另一个具有相同值的ID不符合此条件,则不适用。
select ID from table
where code in (X,Y)
and date <= DATEADD(dd, -540, CURRENT_TIMESTAMP)
你在使用一个数据库? – Exupery
对不起,SQL Server 2012 – user1370407
谢谢,为了将来的参考,包括正在使用的技术的标记是非常有用的。 – Exupery