我试图根据与两列中每一列相关联的位置返回两列的总和。 当我使用OR语句时:
@PreUpdate
它只返回我数据库中的所有内容。我想要的是基于我列出的每个城市的列的总和。
我不确定我做错了什么
提前致谢!
答案 0 :(得分:1)
您只想在city
中添加group by
,而不是要汇总的列。请记住,group by
中的列定义了要返回的行,每行都有唯一的组合。
另外,使用in
。 。 。更容易写和读:
SELECT ua.City, SUM(ec.ElecEnergy) AS ecTotal, SUM(ec.GasEnergy) AS gcTotal
FROM energyconsumption ec INNER JOIN
useraccount ua
ON ec.User = ua.id
WHERE ua.City IN ('London', 'Manchester', 'Luton', 'Newcastle', 'Birmingham', 'Blackburn')
GROUP BY ua.City
ORDER BY ua.City ASC;
请注意,我还更改了ORDER BY
子句 - 假设您每个城市都返回一行。
如果您想要合并所有城市的总数,那么:
GROUP BY
和ORDER BY
条款。ua.city
移除SELECT
。