每周报告代表特定日期字段

时间:2013-03-02 22:40:57

标签: mysql

我正在使用此查询进行每周报告,但找不到像这样的方式

week_number | week_startdate | organization_1 | organization_2
---------------------------------------------------------------
1           | 2013-01--05    |count(date) like 4,24,etc_ | count(date) like 4,24,etc_

SQL:

SELECT WEEK(signed_date) AS week_name, signed_date AS Week_Starting,
       YEAR(signed_date), WEEK(signed_date), COUNT(*)
FROM business
WHERE YEAR(signed_date) = YEAR(CURDATE())
GROUP BY CONCAT(YEAR(signed_date), '/', WEEK(signed_date))
ORDER BY YEAR(signed_date), WEEK(signed_date

示例数据:

signed_date |的organization_ID
01-01-2013 | 1
02-01-2013 | 1
03-01-2013 | 2

在1周内,organization_1有2个签名& organization_2有1个签名。

1 个答案:

答案 0 :(得分:2)

你应该在count或sum中使用case:

SELECT WEEK(signed_date) AS week_name, signed_date AS Week_Starting,
       YEAR(signed_date), WEEK(signed_date),
SUM(CASE  WHEN organization_id=1 THEN 1 ELSE 0 END) as organization_1,
SUM(CASE WHEN organization_id=2 THEN 1 ELSE 0 END) as organization_2
FROM business
WHERE YEAR(signed_date) = YEAR(CURDATE())
GROUP BY CONCAT(YEAR(signed_date), '/', WEEK(signed_date))
ORDER BY YEAR(signed_date), WEEK(signed_date);

http://sqlfiddle.com/#!2/587ad/3