【发布时间】:2016-01-11 12:28:50
【问题描述】:
我想使用以下查询:
SELECT concat(firstname,' ', surname) AS 'Fname',
MAX(CASE WHEN DAYOFWEEK(date) = 1 THEN concat(starttime,'-', endtime) END) `Sunday`,
MAX(CASE WHEN DAYOFWEEK(date) = 2 THEN concat(starttime,'-', endtime) END) `Monday`,
MAX(CASE WHEN DAYOFWEEK(date) = 3 THEN concat(starttime,'-', endtime) END) `Tuesday`,
MAX(CASE WHEN DAYOFWEEK(date) = 4 THEN concat(starttime,'-', endtime) END) `Wednesday`,
MAX(CASE WHEN DAYOFWEEK(date) = 5 THEN concat(starttime,'-', endtime) END) `Thursday`,
MAX(CASE WHEN DAYOFWEEK(date) = 6 THEN concat(starttime,'-', endtime) END) `Friday`,
MAX(CASE WHEN DAYOFWEEK(date) = 7 THEN concat(starttime,'-', endtime) END) `Saturday`
FROM shifts NATURAL JOIN employees
GROUP BY Fname, date
并以某种方式修改它以仅显示 THIS WEEKS 值,如下所示:
SELECT concat(firstname,' ', surname) AS 'Fname',
MAX(CASE WHEN (DAYOFWEEK(date) = 1 AND WITHIN THIS WEEK) THEN concat(starttime,'-', endtime) END) `Sunday`,
etc... etc...
这可以通过 mySQL 实现吗?
【问题讨论】:
-
您是否考虑过 BETWEEN 语句的工作原理?