【问题标题】:Multiple Between Dates from table column表列中的多个日期之间
【发布时间】:2023-03-18 04:27:01
【问题描述】:

源中有年度数据。我需要从中排除数据 - 它在另一个表中并且原始计数不是静态的。

来源数据:

要排除的日期:

可以排除2个raw或者5个raw的数据,所以需要动态的,DISPLAY_NAME列可以绑定2个表。

我正在尝试使用查询来完成,不想使用 sp。有什么办法或 sp 只能选择这样做。

对于每个原始 1 / 0 可能有多种情况,并且仅当列为 1 时才获得所有新情况,但问题是不知道我将使用多少情况,因为排除表数据原始计数不是静态的。

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。

标签: sql datetime multiple-columns between


【解决方案1】:

你在找not exists吗?

select s.*
from source s
where not exists (select 1
                  from excluded e
                  where e.display_name = s.display_name and
                        s.start_datetime >= e.start_date and
                        s.end_datetime < e.end_date
                 );

注意:您的问题并未解释应如何处理 end_date。这假定该日期的数据应包含在结果集中。您也可以调整逻辑以排除该日期的数据。

【讨论】:

  • 我应该排除 START_DATETIME 不在 START_DATE 和 END_DATE 之间的数据
猜你喜欢
  • 2022-06-10
  • 2010-10-05
  • 1970-01-01
  • 2018-09-17
  • 1970-01-01
  • 1970-01-01
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多