1

我有两个当前的 SQL 查询,我目前使用它们来比较上一年的 GM% 和今年的 GM%。这是我每天早上运行的每日报告。日期算术不是很可靠,我正在尝试寻找替代方案。以前我认为该报告仅适用于周一,不包括当天(即如果在周二运行,它只会拉到周一。如果在周一运行,它不会拉任何东西。)最近已更改为 where when报告是周一跑的,他们想看周五到周日。我正在考虑将其设置为前 5 天,不包括当天。(周一跑会拉到周四、周五、周六、周日。)问题是它必须是今年的一天与去年的同一天进行比较。任何尝试过这个的人都知道,得到这个并不容易。这是我当前的日期算术代码。我很茫然,我可以使用一些帮助。

Where DB1.TB1.CLM1>=Current Date-364 days - (DAYOFWEEK(CURRENT DATE) - 2) DAYS 
      And DB1.TB1.CLM1< Current Date- 364 days
4

1 回答 1

2

如果我没听错的话,周二你会提取周一的统计数据。周三,你会为周一至周二提供统计数据。周五,你拉周一至周四。对于所有这些,您需要与前一年相同的一天。

诀窍是现在星期一,你需要拉上一个周末,即周四至周日。

你还没有确定星期天要做什么,所以我不考虑这个情况。

试试这个 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)
   ) 
于 2013-02-22T21:19:07.063 回答