我有一个表格,其中包含每个日期的日期和销售收入(请参阅下面的示例)。我想将给定日期的收入与去年同一天进行比较。
让一切变得复杂的是,我想比较工作日的销售额,而不是日期。
例如,我想将2017-11-14
(星期二)与2016-11-15
(星期二)进行比较。
另一个例子是闰日,2016-02-29
(星期一)应与2015-03-02
(星期一)进行比较。
有没有办法使用MySQL查找前一年相关工作日的日期?
+--------------+--------------+
| log_date | revenue |
+--------------+--------------+
| ... | ... |
+--------------+--------------+
| 2017-10-01 | 1000 |
+--------------+--------------+
| 2017-10-02 | 3000 |
+--------------+--------------+
| 2017-10-03 | 1500 |
+--------------+--------------+
| ... | ... |
+--------------+--------------+
SET @this_years_date = '2017-03-31';
SET @last_years_date = DATE(DATE_SUB(@this_years_date, INTERVAL 1 YEAR)) + INTERVAL
IF (
WEEKDAY(@this_years_date) != WEEKDAY(
DATE(DATE_SUB(@this_years_date,INTERVAL 1 YEAR)) + INTERVAL 1 DAY
), 2, 1
)
DAY;
SELECT revenue FROM table WHERE log_date = @last_years_date;