我有一张数据表
Table1
KEY END_DATE
1 1974-01-01
1 NULL
1 2020-01-01
2 NULL
2 NULL
2 NULL
3 1997-10-01
3 1974-01-01
3 1976-01-01
3 1978-01-01
4 NULL
4 1997-10-01
4 2008-04-01
在上表中我有4个条件
对于密钥1 - MAX(END_DATE)> GETDATE()(Todat日期)并且在这种情况下也有NULL我应该得到集合的最大日期
对于密钥2 - 只有NULL,所以我们应该得到null
对于密钥3 - 没有NULLS和MAX(END_DATE)< GETDATE()所以我们应该得到MAX(END_DATE)
对于密钥4 - 具有NULL和MAX(END_DATE)< GETDATE()所以我们应该得到NULL
HERE是结果表
Result Table
KEY END_DATE
1 2020-01-01
2 NULL
3 1997-10-01
4 NULL
我应该在选择
中获得所有唯一键END_DATE以及上述4个条件谢谢
答案 0 :(得分:3)
如果我理解正确,您的条件是:
NULL
值或这只是某些条件的汇总:
select key,
(case when count(*) = count(end_date) then max(end_date)
when max(end_date) > getdate() then max(end_date)
end) as end_date
from t
group by key;