员工
EMPID
empName
empStoreNum
发票
invNo
invAmount
EMPID
我在Employee和Invoice上面有两个表。我想设置一个查询来检索员工姓名,员工店号以及每位员工的总销售额。我在下面发出了一个查询但它有效,但我无法检索员工店号。
SELECT Emp.empName, Sum(Inv.invAmount) AS totalSales
FROM Invoice AS Inv INNER JOIN Employee AS Emp ON Inv.empId = Emp.empId
GROUP BY Emp.empName
如果我将Emp.empStoreNum添加到SELECT中,我会收到以下错误:“您试图执行一个不包含指定表达式'empStoreNum'的查询作为聚合函数的一部分。”如何修改查询以获取员工店号也?
答案 0 :(得分:2)
select-list中的所有非聚合列必须列在GROUP BY子句中(除非您使用的是MySQL,它使用一组非常不同的规则,或者除非您使用的是最新版本的PostgreSQL ,它能够推断出功能依赖性。)
SELECT Emp.empName, Emp.empStoreNum, Sum(Inv.invAmount) AS totalSales
FROM Invoice AS Inv INNER JOIN Employee AS Emp ON Inv.empId = Emp.empId
GROUP BY Emp.empName, Emp.empStoreNum
答案 1 :(得分:2)
尝试将empStoreNum添加到GROUP BY
SELECT Emp.empName, Emp.empStoreNum, Sum(Inv.invAmount) AS totalSales
FROM Invoice AS Inv INNER JOIN Employee AS Emp ON Inv.empId = Emp.empId
GROUP BY Emp.empName, Emp.empStoreNum
答案 2 :(得分:1)
通过
将第二列添加到您的论坛