mysql - 选择具有差异的对象

标签 mysql

我试图找到一种方法来运行它:

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/

相关文章:

mysql - 如何从mysql中的两行中获取一行

php - MySQL 获取 AVR 并保存在新字段中

php - 优化我项目的场景对象

mysql - PHP 更新查询有语法错误

php - Jquery Ajax 调用正在破坏我的数据

java - MySQL 多重查询

MySQL UPDATE 语句性能

java.sql.Time 对象与 java.sql.Date 对象混淆

MySQL:将另一个表中的2行合并为一个结果行

mysql - Excel删除小数