我需要一个查询,如果某个员工的小时数为120,我需要从表中删除几行
我的原始查询是
delete from [CompanyB$Employee Hours]
where [Employee ID] = 'A2054'
and sum(Hours) = '120'
帮助!
谢谢,
当我使用下面的查询时,它会显示受影响的0行
员工小时表包含以下记录
序列|员工| ID小时 1 | 1024 | 2.50 2 | 1024 | -2.50 3 | 1024 | 4.0 4 | 1024 | 1.0 5 | 1024 | -2.0
总小时数= 3
同样,如果小时数= x
,我想删除某位员工的记录我尝试了解决方案并导致空结果 正在Sql server 2008中尝试查询
答案 0 :(得分:1)
你可以这样做:
DELETE t
FROM [CompanyB$Employee Hours] t
INNER JOIN (select s.[Employee ID],sum(s.hours) as sumHours
FROM [CompanyB$Employee Hours] s
GROUP BY s.[Employee ID]) tt
ON(t.[Employee ID] = tt.[Employee ID] and sumHours = 120)
这将删除总共120小时的每位员工。
您可以添加where子句来过滤特定用途。