我有一个包含多个ID的表,需要一个查询来返回每个ID的列总和。 Calls_table看起来像这样
EmployeeID TypeOfCall InvoiceAmount
John NC 50
john NC 100
Joe NC 76
Joe NC 50
我拥有它所以我必须像emplyee那样雇佣员工
SELECT sum(InvoiceAmount/2) as "Total Calls"
from Calls
where TypeOfCall='NC' and EmployeeID='Derek';
但我希望它能够像这样
返回列表中的所有IDTotal Calls
Joe 100
John 68
我确信我需要使用Distinct参数,但是无法找出
的位置答案 0 :(得分:9)
您需要按关键字使用分组
Select EmployeeID, SUM(InvoiceAmount)
From Calls
Group by EmployeeID
你甚至可以更进一步,按照呼叫类型和EmployeeID进行分组,例如:
Select EmployeeID, TypeOfCall, SUM(InvoiceAmount)
From Calls
Group by EmployeeID, TypeOfCall
您选择的字段必须是聚合函数(总和,计数,平均等),或者在执行此操作时在组中。
答案 1 :(得分:1)
SELECT EmployeeID, SUM(InvoiceAmount/2)
FROM Calls
WHERE TypeOfCall='NC'
GROUP BY EmployeeID