把图1的PosNum重复项删除,但又不能把CardNo数据也删除了,因为PosNum和CardNo的数据都有相同,CardNo为卡号不能全部删除,只要把图1变成图2这样就行了
这是什么啊,重复记录和不重复的记录全部删除了
追答你那ID不是主键么。。如果不是where条件得换下,游标单条单条数据处理的
追问主要是删除POSNUM的重复项,但又不能把其他cadrno的也删除,比如907和304里的POSNUM都有64的重复,我要907和304里POSNUM的64都要保留一个
追答--少一个限定条件,加个EmpID就可以了
Declare @ID Int, @PosNo Int, @EmpID Int
Declare @Table Table(
ID Int,
PosNo Int,
EmpID Int
)
Declare cur Cursor Static READ_ONLY For
Select ID, PosNo, EmpID
From 表
Order By EmpID, ID
Open cur
Fetch From cur Into @ID, @PosNo, @EmpID
While @@FETCH_STATUS = 0
Begin
If Exists(Select * From @Table Where PosNo = @PosNo And EmpID = @EmpID)
Begin
Delete 表 Where ID = @ID
End
Else
Begin
Insert Into @Table (ID, PosNo, EmpID)
Values (@ID, @PosNo, @EmpID)
End
Fetch Next From cur Into @ID, @PosNo, @EmpID
可以了, 感谢啊,能加个好友吗?还有其他的想请教下
追答私信百度账号chh56983
追问我想在这段语加入时间段,在哪加入?cardtime between '2012-01-01 00:01' and '2015-12-29 23:50'
cardtime为时间段列,要怎么改?
'parition' 附近有语法错误。
追答partition
追问不行重复项还是在