Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不同表中按id列出的SQL总值总和_Sql - Fatal编程技术网

不同表中按id列出的SQL总值总和

不同表中按id列出的SQL总值总和,sql,Sql,我试图显示每个员工的总收入,但我的查询显示了一个员工所有收入的总和 这是我的问题 SELECT Employee.FirstName , Employee.LastName, SUM(Payments.Value) AS Total_Value FROM Payments, Employee WHERE Employee.Employee_ID = Payments.Employee_ID ORDER BY Employee.Employee_ID 您的查询应该生成一个错误,因为它是一个聚

我试图显示每个员工的总收入,但我的查询显示了一个员工所有收入的总和

这是我的问题

SELECT Employee.FirstName , Employee.LastName, SUM(Payments.Value) AS Total_Value
FROM Payments, Employee
WHERE Employee.Employee_ID = Payments.Employee_ID
ORDER BY Employee.Employee_ID

您的查询应该生成一个错误,因为它是一个聚合查询,没有
group by
,并且有未聚合的列

不幸的是,您使用的数据库(或其版本)不会生成错误。但您只需要一个
分组依据

SELECT e.FirstName, e.LastName, SUM(p.Value) AS Total_Value
FROM Payments p JOIN
     Employee e
     ON e.Employee_ID = p.Employee_ID
GROUP BY e.FirstName, e.LastName, e.Employee_ID
ORDER BY e.Employee_ID;
注:

  • 切勿在
    FROM
    子句中使用逗号
  • 始终使用正确、明确、标准、可读的连接语法
  • 表别名使查询更易于编写和读取
  • 如果要按员工id进行排序,则还应将其包括在
    分组依据中。这也处理了不同员工可能同名的情况

只标记您使用的数据库。@forpas但我必须显示姓名和收入