Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Хитрый запрос на удаление
 
 автор: Andrew.spb   (18.05.2007 в 05:33)   личное сообщение
 
 

Всем привет!
Вообщем, никак не могу создать следующий запрос
В таблице много записей котрые по первичным ключам идентичны.
Мне нужно отобрать записи из идентичных (с одинаковыми индексами. в моём случае два поля индекса) ориентируясь на некое поле (пусть будет "супер_число" =)) с числовой характеристикой. Нужно выбрать из идентичных такие записи в которых поле "супер_число" (а оно числовое) будет принимать минимальное значение, а остальные удалить.
Подскажите, пожалуйста, как в конструкторе это организовать?
Просто, всё никак не могу прикинуть в уме какое выражение в запросе в условии на удаление писать, т.к. нужно сравнивать записи на идентичность, а потом сравнивать у кого из них будет минимальнео значение в поле "супер_число"...
.... бъюсь челом ... :( совершенно зашёл в тупик :(...

  Ответить  
 
 автор: osmor   (18.05.2007 в 08:32)   личное сообщение
 
 

создате запрос на выборку тех данных которые Вы хотите оставить и сделайте из него запрос на создание таблицы.
затем создайте запрос на удаление из основной таблицы тех данных которым нет соответсвующих во временной таблице связав по 3-м полям (2 поля индек+"супер_число")

Фраза "В таблице много записей котрые по первичным ключам идентичны. " - не имеет смысла, ключевое поле (или совокупность полей) - уникально, если это не так - это не ключевое поле

  Ответить  
 
 автор: Andrew.spb   (18.05.2007 в 13:35)   личное сообщение
 
 

Спасибо за ответ!
Проблема в том что я не знаю как конкретно описать данный запрос.
Т.е. "создате запрос на выборку тех данных которые Вы хотите оставить и сделайте из него запрос на создание таблицы." не совсем понимаю что кокнретно Вы имеете ввиду...

  Ответить  
 
 автор: osmor   (21.05.2007 в 08:42)   личное сообщение
 
 

примерно так:

SELECT ключевоеПоле1, ключевоеПоле2, Min(супер_число) AS MinСупер INTO [Временная Таблица] FROM Таблица
GROUP BY ключевоеПоле1, ключевоеПоле1;


Получится таблица с "нужными данными"
Далее мастером строите "запрос без подчиненных" и изменяете его в запрос на удаление

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList