yzm276076(提问者)不是很懂 大佬,例如我这个本周情况的SQL如下SELECT
count(
CASE
WHEN openedDate >= ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + 0 DAY ) )
AND openedDate <= ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 6 DAY ) ) THEN
\'本周计划\' ELSE NULL
END
) AS 本周计划,
count(
CASE
WHEN t.`status` = \'done\'
AND DATE_FORMAT(openedDate,\'%Y-%m-%d\') >= ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + 0 DAY ) )
AND DATE_FORMAT(openedDate,\'%Y-%m-%d\') <= ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 6 DAY ) ) THEN
\'本周完成\' ELSE NULL
END
) AS 本周完成,
count(
CASE
WHEN t.`status` = \'done\'
AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + 0 DAY ) ) THEN
\'周一\' ELSE NULL
END
) AS 周一,
count(
CASE
WHEN t.`status` = \'done\'
AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 1 DAY ) ) THEN
\'周二\' ELSE NULL
END
) AS 周二,
count(
CASE
WHEN t.`status` = \'done\'
AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 2 DAY ) ) THEN
\'周三\' ELSE NULL
END
) AS 周三,
count(
CASE
WHEN t.`status` = \'done\'
AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 3 DAY ) ) THEN
\'周四\' ELSE NULL
END
) AS 周四,
count(
CASE
WHEN t.`status` = \'done\'
AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 4 DAY ) ) THEN
\'周五\' ELSE NULL
END
) AS 周五,
count(
CASE
WHEN t.`status` = \'done\'
AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 5 DAY ) ) THEN
\'周六\' ELSE NULL
END
) AS 周六,
count(
CASE
WHEN t.`status` = \'done\'
AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 6 DAY ) ) THEN
\'周天\' ELSE NULL
END
) AS 周天,
a.realname
FROM
zt_task t
LEFT JOIN zt_user a ON t.assignedTo = a.account
WHERE
t.`project` = \'37\'
AND t.`deleted` = \'0\'
AND t.`status` NOT IN ( \'closed\', \'cancel\' )
GROUP BY
assignedTo