2016-04-29 6 views
-2

У меня есть таблица с пару тысяч записей, выглядит следующим образом:Удаление группы строк с конкретным ID условными на другой колонке

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 выглядит в примере выше, где есть только Start/END, но нет денег. Я пытаюсь использовать внутреннее соединение для идентификации этих строк, но у меня возникают проблемы с формированием моего оператора select. Как выбрать строки, соответствующие этому описанию?

ответ

3

Простой вариант:

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

Не могу поверить, что я об этом не думал! Спасибо! – mdarr

0

Предполагая, что ваша таблица называется тест, следующий должен сделать для вас.

DELETE FROM test 
WHERE id NOT IN (
     SELECT id FROM test WHERE data = 'Money'); 
Смежные вопросы