查询以获取数据,按两列分组并按行中的客户ID显示多个相似的行

时间:2016-04-04 12:25:54

标签: mysql sql

我有一个mysql表,如下图所示。

enter image description here

我想查询此表,以便获取如下数据:

enter image description here

我正在使用以下查询。

SELECT SUM(TOTAL_HOURS) AS TOTAL_HOURS, CLIENT_ID, `DAY` 
FROM timesheet_slave
GROUP BY CHARGE_ID, `DAY`;

得到如下结果:

enter image description here

如何将类似的行与客户端ID合并并获取数据,如下表所示?

enter image description here

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:1)

您可以使用条件聚合,如下所示:

SELECT CLIENT_ID,
       SUM(IF(`DAY`='Working', TOTAL_HOURS, 0)) AS TOTAL_WORKING_HOURS,   
       SUM(IF(`DAY`='Holiday', TOTAL_HOURS, 0)) AS TOTAL_HOLIDAY_HOURS
FROM timesheet_slave  
GROUP BY CLIENT_ID ;