Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SQL - запрос на удаление по условию [MSSQL]


Страницы:   1 2

Ольга ©   (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)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо