Mysql 错误查询SQL";组函数的使用无效“;
我正在尝试运行此查询,但出现错误“组函数的使用无效”。还尝试了Año、Mes、Turno的Mysql 错误查询SQL";组函数的使用无效“;,mysql,sql,Mysql,Sql,我正在尝试运行此查询,但出现错误“组函数的使用无效”。还尝试了Año、Mes、Turno的组和相同的结果 我还想把THEN乘以100,结果是一个百分比,我必须在同一行上,或者在前一行的末尾 select year(c.start) as Año, month(c.start) as Mes, s.name as Turno, SUM( CASE WHEN u.name ='Jorge Robles Ruiz' THEN SUM(TIMESTAMPDIFF(
组代码>和相同的结果
我还想把THEN乘以100,结果是一个百分比,我必须在同一行上,或者在前一行的末尾
select year(c.start) as Año, month(c.start) as Mes, s.name as Turno,
SUM(
CASE
WHEN u.name ='Jorge Robles Ruiz'
THEN SUM(TIMESTAMPDIFF(SECOND,c.start,c.end)/3600) /
SUM(TIMESTAMPDIFF(SECOND,s.startTime,s.endTime)/3600)
ELSE 0
END
) AS 'Jorge Robles Ruiz',
SUM(
CASE
WHEN u.name ='Ricardo Jarquín'
THEN SUM(TIMESTAMPDIFF(SECOND,c.start,c.end)/3600) /
SUM(TIMESTAMPDIFF(SECOND,s.startTime,s.endTime)/3600)
ELSE 0
END
) AS 'Ricardo Jarquín'
from `cicles` as `c`
inner join `users` as `u` on `u`.`id` = `c`.`opId` and `u`.`companies_id` = `c`.`companies_id`
inner join `shifts` as `s` on `s`.`id` = `c`.`shiftId` and `s`.`companies_id` = `c`.`companies_id`
where `c`.`start`
between 2018-12-01 and 2019-01-11
and `c`.`opId` in (1, 2)
and `s`.`visible` = 1
and `c`.`companies_id` = 1
and `c`.`status` = 1
group by year(c.start), month(c.start), s.name;
谢谢你们
警察局。对不起,我的英语不好。你不能在SUM()
里面放SUM()
,我想你不需要这两个。我认为你应该写:
SUM(IF(u.name = 'Jorge Robles Ruiz', TIMESTAMPDIFF(SECOND,c.start,c.end), 0))
/ SUM(IF(u.name = 'Jorge Robles Ruiz', TIMESTAMPDIFF(SECOND,s.startTime,s.endTime), 0))
/ 3600 AS 'Jorge Robles Ruiz',
要使其成为一个百分比,在结尾处乘以100
,或者将/3600
更改为/36
,我的意思是,你将一个大小写
表达式放在一个总和
中,该表达式返回另一个总和
。删除那些你的英语很好。无需[永远]道歉。我会添加一个与您的“分组依据”条款相匹配的“订单依据条款”。您为什么要计算百分比?我看不出这有什么意义。当然,把工作时间加起来,把轮班的总时间加起来,把它们转换成一个百分比,这样你就可以说“这个人在轮班时工作了95%的时间”或者其他什么,但是如果你把他们的百分比加起来,你会遇到一个懒惰的人,他每班20班只工作50%,报告说他在包含你的样本数据和预期输出方面工作了1000%。