【发布时间】:2021-09-28 16:02:45
【问题描述】:
我有带有列的员工工资详细记录表
Id Name Year Month Salary
1 ABC 2021 Jan 50000
2 PQR 2021 Jan 40000
3 KLM 2021 Feb 45000
4 LMN 2021 Jan 55000
5 LMN 2022 Jan 20000
6 ABC 2022 Feb 25000
7 ABC 2022 Jan 2500
8 ABC 2022 Dec 60000
9 LMN 2022 Nov 70000
现在我想找出哪个员工加入后薪水大于100000,并显示员工所有数据
--查找到现在哪个员工的工资超过100000
select name,sum(salary) as AnnualSalary from tblEmpsalary
group by Name
having sum(Salary)>100000 --this query works
--但下面的查询显示没有数据,(我想显示总工资超过100000的员工的所有数据)
SELECT id, name,Month,Year, SUM(Salary) AS TotalSales
FROM tblEmpsalary
GROUP BY name,Id,Month,Year,Salary
having SUM(Salary)>100000;
【问题讨论】:
-
似乎应该在您的
SELECT和GROUP BY中的唯一列(SUM除外)是name。对于初学者,您在ID上进行分组,但您所有的IDs 都是不同的值,因此您聚合了 1 个值;而单个值的SUM,就是单个值。
标签: sql sql-server group-by sql-server-2014 sql-server-2014-express