我试图找到一种方法来运行它:
SELECT
s.system_number,
s.total_points,
p.licensed_points,
SUM(p.licensed_points) - SUM(s.total_points) AS difference_points
FROM
server AS s
LEFT JOIN
practice AS p ON p.system_number = s.system_number
WHERE
difference_points < 0
我的目标是只选择 difference_points < 0 的对象
有人知道怎么做吗?
谢谢
最佳答案
- 在没有
Group By
的情况下使用聚合函数Sum()
在这里没有意义。您需要对s.system_number
进行Group By
。 - 然后,您可以使用
Having
子句来考虑difference_points
小于0的情况。
请尝试以下操作:
SELECT
s.system_number,
SUM(s.total_points),
SUM(p.licensed_points),
SUM(p.licensed_points) - SUM(s.total_points) AS difference_points
FROM
server AS s
LEFT JOIN
practice AS p ON p.system_number = s.system_number
GROUP BY
s.system_number
HAVING
difference_points < 0
关于mysql - 选择具有差异的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53085414/