【发布时间】:2015-04-13 15:49:11
【问题描述】:
我有错误
1242 - 子查询返回多于 1 行
在
(SELECT COUNT(*) FROM attendance GROUP BY stu_ID ) /(SELECT COUNT(if(`attstatus`='P', `attstatus`,NULL))
FROM attendance GROUP BY stu_ID
我该如何解决它,任何其他解决方案都可以显示attstatus='P' 的百分比?
SELECT stu_ID,stu_name,
GROUP_CONCAT(if(class_no="lec_1", `attstatus`, NULL)) AS 'Lecturer 1',
GROUP_CONCAT(if(class_no="lec_2", `attstatus`, NULL)) AS 'Lecturer 2',
COUNT(if(`attstatus`='P', `attstatus`,NULL)) AS 'total p',
COUNT(if(`attstatus`='A', `attstatus`, NULL)) AS 'total a',
COUNT(*) as dayTotal,
(SELECT COUNT(*) FROM attendance GROUP BY stu_ID ) /(SELECT COUNT(if(`attstatus`='P', `attstatus`,NULL)) FROM attendance GROUP BY stu_ID)
FROM attendance
WHERE session_ID=1
GROUP BY stu_ID,stu_name;
【问题讨论】:
-
也许您应该将这些问题作为单独的问题发布(如果有意义,请提供指向其他问题的链接)。对于第一个问题,似乎第一个
GROUP BY导致了问题。如果您描述您想要实现的目标,这可能会有所帮助。 -
@Gábor Bakos 很抱歉..由 GROUP BY..引起的..i 将使用总 p/daytotal 计算总 p 的百分比
标签: database percentage mysql-error-1242