我目前有两个当前的SQL查询,用于比较去年的GM%和今年的GM%。这是我每天早上跑的每日报道。日期算术不是很稳固,我试图找到一个替代方案。以前我认为报告只会在周一前进,而不包括当天(即如果在周二运行,它只会在周一进行。如果在周一运行它不会拉动任何东西。)最近这已经变为何时该报告于周一播出,他们希望看到周五至周日。我正在考虑将其设置为拉动前5天,不包括当天。 (星期一跑将Thur,星期五,星期六,星期日。)问题是它必须是今年的一天与去年同一天比较。任何试过这个的人都知道得到这个并不容易。这是我目前的日期算术代码。我不知所措,我可以帮忙。
Where DB1.TB1.CLM1>=Current Date-364 days - (DAYOFWEEK(CURRENT DATE) - 2) DAYS
And DB1.TB1.CLM1< Current Date- 364 days
答案 0 :(得分:2)
如果我听到你说对了,星期二你就会在周一提取统计数据。星期三,你为Mon-Tues统计数据。星期五,你拉周一至周四。对于所有这些,您需要前一年的同等日期。
诀窍是,现在星期一,你需要拉上周末,即周四至周日。
你还没有定义星期天要做什么,所以我要离开那个案子。
尝试这个WHERE语句:
where
( -- do this after Monday
dayofweek(current date) > 2 and
DB1.TB1.CLM1 between ((current date - 364 days) - (dayofweek(current date) - 2) days) and (current_date - 365 days)
)
or
( -- do this on Monday
dayofweek(current date) = 2 and
DB1.TB1.CLM1 between (current date - 368 days) and (current date - 365 days)
)