2

我有一个有多个 ID 的表,需要一个查询来返回每个 ID 的列的总和。Calls_table 看起来像这样

EmployeeID    TypeOfCall    InvoiceAmount 
John          NC             50
john          NC             100
Joe           NC             76
Joe           NC             50 

我有它,所以我现在必须由员工来做

SELECT sum(InvoiceAmount/2) as "Total Calls" 
from Calls
where TypeOfCall='NC' and EmployeeID='Derek';

但我希望它能够像这样返回列表中的所有 ID

Total Calls
Joe              100
John             68

我确定我需要使用 Distinct 参数,但无法弄清楚在哪里

4

2 回答 2

9

您需要使用 group by 关键字

Select EmployeeID, SUM(InvoiceAmount) 
From Calls
Group by EmployeeID

您甚至可以更进一步,按呼叫类型和 EmployeeID 分组,如下所示:

Select EmployeeID, TypeOfCall, SUM(InvoiceAmount) 
From Calls
Group by EmployeeID, TypeOfCall

执行此操作时,您选择的字段需要是聚合函数(sum、count、avg 等)或在 Group by 中。

于 2012-12-27T22:07:01.743 回答
1
SELECT EmployeeID, SUM(InvoiceAmount/2)
FROM Calls
WHERE TypeOfCall='NC'
GROUP BY EmployeeID
于 2012-12-27T22:08:09.433 回答