Mysql 代表特定日期字段的周报

Mysql 代表特定日期字段的周报,mysql,Mysql,我正在使用此查询进行每周报告,但找不到类似的方法 周号|周开始日期|组织机构| 1 |组织机构| 2 --------------------------------------------------------------- 1 | 2013-01--05 |计数(日期)如4,24等|计数(日期)如4,24等_ SQL: 样本数据: 签署日期组织id 01-01-2013 | 1 02-01-2013 | 1 03-01-2013 | 2 在1周内,组织1有2个签名&组织2有1个签名。您应

我正在使用此查询进行每周报告,但找不到类似的方法

周号|周开始日期|组织机构| 1 |组织机构| 2
---------------------------------------------------------------
1 | 2013-01--05 |计数(日期)如4,24等|计数(日期)如4,24等_
SQL:

样本数据:

签署日期组织id
01-01-2013 | 1
02-01-2013 | 1
03-01-2013 | 2


在1周内,组织1有2个签名&组织2有1个签名。

您应该在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);

您能提供表格的样本数据吗?问题中编辑的样本数据我还有一个与您的答案相关的问题。也可以选择显示没有交易或没有相关数据的一周。表示“组织1”和“组织2”在任何一周内都没有签名数据。我们能用0 | 0 | 0表示数据吗。。很遗憾,@SyedOsama-MySQL缺少PostgreSQL的generate_系列,但这仍然是可能的。看看这里是怎么做的:你的一代人将是这样的:然后你必须离开这张桌子加入你的生意
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);