-
Yitzhak Khabinsky 20,016 Reputation points
2020-08-17T16:45:23.537+00:00 Hi Cholotron,
Please try the following T-SQL statement:
DELETE FROM A FROM dbo.pay_local AS A WHERE A.action_type = 'A' AND EXISTS( SELECT 1 FROM dbo.pay_local AS B WHERE B.emp_id = A.emp_id AND B.shift_date = A.shift_date AND B.action_type = 'U'); -- test SELECT * FROM dbo.pay_local;
CREATE TABLE [dbo].pay_local ON [PRIMARY]
SET IDENTITY_INSERT [dbo].[pay_local] ON
INSERT [dbo].[pay_local] ([shift_id], [emp_id], [action_type], [action_group], [shift_date], [shift_time]) VALUES (2, N'00010', N'A', N'Time In ', N'20200810', N'15:43:41')
, (3, N'00015', N'A', N'Time In ', N'20200810', N'15:57:52')
, (4, N'00024', N'A', N'Time In ', N'20200810', N'07:18:01')
, (5, N'00030', N'A', N'Time In ', N'20200810', N'06:16:07')
,(7, N'00031', N'U', N'Time In ', N'20200810', N'04:21:00')
,(8, N'00052', N'A', N'Time In ', N'20200810', N'07:16:13')
SET IDENTITY_INSERT [dbo].[pay_local] OFF
--select * from [dbo].[pay_local]
delete from pl1
from [dbo].[pay_local] pl1
where pl1.action_type='A' and
exists( select 1 from [dbo].[pay_local] pl2
where pl2.action_type='U'
and pl1.emp_id=pl2.emp_id and pl1.[shift_date]=pl2.[shift_date] )
--select * from [dbo].[pay_local]
drop TABLE [dbo].[pay_local]