仅包括 sql 中的一行

Including only one row in sql

我想做的是获取如下所示的记录:

ID  NAME    STARTDATE   ENDDATE   EnrollmentMonth
1   PETER   20200705    20200729    20200701    
1   TONY    20200730    99991231    20200701

并将其更改为如下所示:

ID  NAME    STARTDATE   ENDDATE   EnrollmentMonth
1   PETER   20190101    20200729    20200701 

加上那个月15号报名的名字,Peter是7月15号报名的,Tony没有。

想法是在七月只选一个名字。

我很难完成这项工作。任何帮助将不胜感激。

谢谢

您似乎想要筛选 startdate 早于注册月份 15 日的行:

select t.*
from mytable t
where t.startdate <= trunc(enrollmentmonth, 'month') + interval '15' month

如果 enrollmentmonth 始终是一个月的第一天,我们可以分配 trunc():

select t.*
from mytable t
where t.startdate <= enrollmentmonth + interval '15' month