我正在尝试获得以下查询的解决方案,如果你能给我提示那将是很棒的。
我有下表
MainId SubId Code A01 r01 pre1 A01 r02 pre1 A01 s01 post1 A01 s02 post1 A01 s03 post1 A02 s04 post1 A02 s05 post1 A02 s06 post1 A03 r05 pre1 A03 r06 pre1
预期结果:
MainId SubId Code A01 s01 post1 A01 s02 post1 A01 s03 post1 A02 s04 post1 A02 s05 post1 A02 s06 post1 A03 r05 pre1 A03 r06 pre1
我想删除主要id为pre1但条件为主要id的所有记录必须同时满足pre1和POST1值。
所以,举一个例子,如果你看到上面的A01同时有pre1和post1意味着案件已经完成,我们不需要更多的pre1记录,所以我想删除它们。
如果MAINID只有pre1或post1,则保持原样。
在此之后或同时我想将结果集转移到新表中。
答案 0 :(得分:2)
我认为这应该有效:
DELETE yourTable
WHERE Code = 'pre1'
AND MainId IN (SELECT MainId FROM yourTable WHERE Code = 'post1')
答案 1 :(得分:0)
试试这个,它应该做你想要的:
DELETE FROM #TEMP
WHERE CODE = 'PRE1'
AND MAIN_ID IN (
SELECT MAIN_ID FROM #TEMP
WHERE CODE = 'POST1')