SELECT 房源ID,出勤人,
SUM(CASE WHEN 出勤类型<3 THEN 工时 ELSE 0 END) AS 一二工时,
SUM(CASE WHEN 出勤类型>=3 AND 出勤类型<5 THEN 工时 ELSE 0 END) AS 三四工时,
SUM(CASE WHEN 出勤类型>=5 AND 出勤类型<7 THEN 工时 ELSE 0 END) AS 五六工时,
SUM(CASE WHEN 出勤类型>=7 AND 出勤类型<9 THEN 工时 ELSE 0 END) AS 七八工时
实际上关键就是在于如何将1和2分组成一个组对吧。对于oracle而言可以用translate函数设置对应关系,对于你这样的有规则的分组可以加一取整将1,2变成一个数。类似这样:SELECT name,(type+1)/2, sum(time) time FROM employtime group by name,(type+1)/2;