我有一个 ID 列表,每个 ID 都有一个代码和一个日期。每个 ID 可以有多个代码和日期。我需要找到仅包含代码 X 和代码 Y((X,Y)中的代码)以及早于 540 天前的日期的 ID (Date <= DATEADD(dd, -540, CURRENT_TIMESTAMP))
。
由于一个 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,即使它符合我的原始标准。
我需要包含符合我的条件的 ID (code in (X,Y) and Date <= DATEADD(dd, -540, CURRENT_TIMESTAMP))
,但如果具有相同值的另一个 ID 不符合此条件,则不需要。
select ID from table
where code in (X,Y)
and date <= DATEADD(dd, -540, CURRENT_TIMESTAMP)