SELECT
`arrangement`.`projectid`,
`arrangement`.`courseid`,
`arrangement_date`.`date`,
SUM(CASE WHEN `arrangement`.`traindays`=0 THEN `arrangement`.`time` ELSE `arrangement`.`traindays` END) AS `usetime`,
GROUP_CONCAT(`teacher`.`name` ORDER BY `teacher`.`name` ASC) AS `teachername`
FROM
`arrangement`
INNER JOIN
`arrangement_date`
ON DATE(`arrangement_date`.`date`) BETWEEN DATE(`arrangement`.`startdate`) AND DATE(`arrangement`.`enddate`)
INNER JOIN
`teacher`
ON `teacher`.`id`=`arrangement`.`teacherid`
WHERE
DATE(`arrangement_date`.`date`) BETWEEN DATE('2015-1-1') AND date('2015-1-31')
GROUP BY
`arrangement`.`projectid`,`arrangement`.`courseid`, `arrangement_date`.`date`
现有sql语句如上,执行后结果如下图:
想实现把分组后的结果按时间(
date列)升序排序,于是追加 order by `arrangement_date`.`date`语句,结果(
projectid列)分组
被打乱了,执行结果如下图:
不是想要的效果。
请教各位达人,要怎样改进sql,才能实现下图效果 ?