删除有一定金额

时间:2016-03-10 13:10:51

标签: sql

我需要一个查询,如果某个员工的小时数为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中尝试查询

1 个答案:

答案 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子句来过滤特定用途。