【发布时间】:2021-05-22 06:09:45
【问题描述】:
Select max( date) from t1 t where a.calendar_ date= t.date
当月在周末或节假日结束时,此查询会产生问题。此查询与另一个表连接,因此我需要一个查询,使用它可以获得正确的日期。
【问题讨论】:
-
你怎么知道假期是什么时候?您需要一个包含该信息的表格。
Select max( date) from t1 t where a.calendar_ date= t.date
当月在周末或节假日结束时,此查询会产生问题。此查询与另一个表连接,因此我需要一个查询,使用它可以获得正确的日期。
【问题讨论】:
“假期”很难,因为它们是区域性的并且每年都在变化。您应该保留一个包含假期日期的表格,以便您可以使用以下内容排除它们:
Select max(date)
from t1 t
LEFT JOIN holidays h on t.date = h.date
where
h.date IS NULL AND --not a holiday
(1 + TRUNC (t.date) - TRUNC (t.date, 'IW')) NOT IN (6,7) AND -- not a weekend, regardless of region
a.calendar_date= t.date
ps;我不知道你的 a 别名来自哪里
【讨论】: