【问题标题】:Including only one row in sql [closed]在sql中只包括一行[关闭]
【发布时间】:2020-11-04 19:05:34
【问题描述】:

我要做的是获取这些看起来像这样的记录:

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 日注册的名字,彼得在 7 月 15 日注册,而托尼没有。

我们的想法是在 7 月只选择一个名字。

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

谢谢

【问题讨论】:

  • 在预期的结果中 - 20190101 在那里。从哪里取?还是有什么逻辑?

标签: sql oracle datetime where-clause


【解决方案1】:

您似乎想要过滤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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多