删除具有特定ID的行组,以另一列为条件

时间:2016-04-29 15:52:46

标签: sql sql-server sql-server-2012 sql-delete

我有一个包含几千个条目的表,如下所示:

ID    Data Type    Amount
1     Start        
1     Money        13.45
1     Money        3.79
1     Money        46.82
1     END
2     Start
2     Money       26.24
2     END
3     Start
3     END

我想在上面的示例中删除任何看起来ID = 3的ID的ID组,其中只有一个Start / END但没有钱。我正在尝试使用内部联接来识别这些行,但是我在编写select语句时遇到了问题。如何选择适合此描述的行?

2 个答案:

答案 0 :(得分:3)

简单选项:

Delete from MyTable
Where ID not in (Select ID from MyTable where [Data Type] = 'Money')

答案 1 :(得分:0)

假设您的表名为test,则以下内容应该为您完成。

DELETE FROM test 
WHERE id NOT IN (
      SELECT id FROM test WHERE data = 'Money');