Mar*_*Ang 5 sql-server select sql-server-2008
我正在创建一个查询,不知怎的,我的查询似乎有问题.
这是我的查询:
Select
E.last_name as [Last Name],
E.first_name as [First Name],
SUM(CASE WHEN empAttendance.status = 'Absent' THEN 1 ELSE 0 END) as [Absences],
SUM(CASE WHEN empAttendance.status = 'Late' THEN 1 ELSE 0 END) as [Number of Lates]
from
empAttendance
INNER JOIN employee E ON empAttendance.emp_id = E.emp_id
WHERE E.company_id = (Select company_id from company Where company_name = @company)
Run Code Online (Sandbox Code Playgroud)
其中employee表的emp_id列是PK,empAttendance的emp_id为FK.
employee表有列last_name和first_name列.
错误说: Column 'employee.last_name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
提前致谢.
使用聚合函数时,SUM您需要group by:
Select
E.last_name as [Last Name],
E.first_name as [First Name],
SUM(CASE WHEN empAttendance.status = 'Absent' THEN 1 ELSE 0 END) as [Absences],
SUM(CASE WHEN empAttendance.status = 'Late' THEN 1 ELSE 0 END) as [Number of Lates]
from
empAttendance
INNER JOIN employee E ON empAttendance.emp_id = E.emp_id
WHERE E.company_id = (Select company_id from company Where company_name = @company)
GROUP BY E.last_name, E.first_name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34593 次 |
| 最近记录: |