![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL - запрос на удаление по условию [MSSQL]
Ольга © (2005-07-06 16:46:00)Что-то меня сегодня клинит, не могу правильно написать простой запрос на удаление. Прошу помощи.
Есть таблица T1: (ID int,
Р int,
S int,
VAL float)
Сочетание ID,P,S - уникальное.
Нужно в таблице оставить записи, где значение S максимальное для каждого сочетания ID,P, но не больше заданного значения (допустим 4).
Вот мой неработающий вариант (не ругается, но и не удаляет ненужное из таблицы):
DELETE FROM T1 WHERE NOT EXISTS
(SELECT d.ID,d.P,d.S,d.VAL
FROM T1 d,
(select ID,P,max(S) as S
from T1
where S<=4
group by ID,P) d1
WHERE d.ID=d1.ID AND d.P=d1.P AND d.S=d1.S)
Virgo_Style (2005-07-06 16:59:00) [21]Может, так?
DELETE * FROM T1 AS A WHERE
(
A.S<( SELECT MAX(S) FROM T1 AS B WHERE (A.ID=B.ID) and (A.P=B.P) )
)
OR (A.S>4)