Sql Query获取所需的输出

时间:2013-04-19 11:10:54

标签: sql-server-2008

我有一张表

EmpName | Bonus
Rohit   | 20
Steve   | 35
Rohit   | 9
Johnson | 15

现在我想要用户名和奖金<30的不同员工的总奖金。 答案应该是;

EmpName | Sum(Bonus)
Rohit   | 29
Johnson | 15

获取此输出的查询是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用汇总函数sum()获取每个empname的总奖金,然后使用HAVING子句返回总奖金为empname的{​​{1}}少于30:

select empname, sum(bonus) TotalBonus
from yt
group by empname
having sum(bonus) < 30;

请参阅SQL Fiddle with Demo

或者,如果您只想将bonus小于30的行合计,则可以使用:

select empname, sum(bonus) TotalBonus
from yt
where bonus < 30
group by empname;

请参阅SQL Fiddle with Demo

答案 1 :(得分:1)

SELECT EmpName,
       SUM(Bonus) AS SumBonus
FROM dbo.Table1
WHERE Bonus < 30
GROUP BY EmpName

Demo