基本上,我有这个-
SELECT COUNT(student_dormpm.DormCode) * dorm_datapm.DormCharge
FROM student_dormpm
JOIN dorm_datapm
USING (DormCode)
GROUP BY DormCode;
结果
+---------------------------------------------------------+
| COUNT(student_dormpm.DormCode) * dorm_datapm.DormCharge |
+---------------------------------------------------------+
| 5250.00 |
| 11250.00 |
| 9600.00 |
| 6500.00 |
| 5510.00 |
+---------------------------------------------------------+
但是,每当我尝试添加SUM()时,它都会崩溃,并且会出现无效使用组函数的错误。
我已经尝试过SUM(COUNT(student_dormpm.DormCode) * dorm_datapm.DormCharge)
答案 0 :(得分:1)
在整个第一个查询输出上使用sum
,其中对第一个查询输出指定别名(例如模拟新表)为t
,还指定别名为total
到计数器,以便您可以计算sum(total)
:
select sum(total) as mysum from
(
SELECT COUNT(student_dormpm.DormCode) * dorm_datapm.DormCharge as total
FROM student_dormpm
JOIN dorm_datapm
USING (DormCode)
GROUP BY DormCode
) t
答案 1 :(得分:0)
看起来dorm_datapm
是您的宿舍表,每个DormCode
都有一条记录,并带有关联的DormCharge
。 (不过,在这种情况下,表名dorm
更合适。)
如果是这样,那么您只想总结一下宿舍费用:
SELECT DormCode, SUM(dd.DormCharge)
FROM student_dormpm sd
JOIN dorm_datapm dd USING (DormCode)
GROUP BY DormCode
ORDER BY DormCode;
但是,如果dorm_datapm
每个DormCode
可以有多个记录,那么您将不得不查看上面的查询是否获得了想要的结果,或者是否想要加入{{1} }行,只有一个student_dormpm
行(在这种情况下,您将不得不以某种方式扩展联接条件)。
如果您只想查找总数,则不要按dorm_datapm
分组:
DormCode