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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Запрос игнорирующий повторы
 
 автор: Mak&S   (10.06.2008 в 14:10)   личное сообщение
 
 

Всем привет!
Из приведённой ниже таблицы надо выбрать все поля и строки анализируя поле IDm в пределах группы IDMC. В поле IDm встречаются повторы, и если есть повтор нужно выбрать только одну строку с минимальным значением Num

IDMap    IDMC    IDTU    Num    IDm
563      668      КШ      1      1
806      668    Прокат    2     1
1049    668    Окраска    4     3
1052     767     КШ      8      1
1315     767    Прокат    7     1
1449    767    Окраска    6     3

Запрос должен выводить следующие данные:

IDMap    IDMC    IDTU    Num    IDm
563      668     КШ      1      1
1049     668    Окраска    4    3
1315    767    Прокат     7     1
1449    767    Окраска     6     3

Я как мог придумал, но получилось это 4-мя запросами и ооочень долго выводится. Может что-нить дельное подскажете?

  Ответить  
 
 автор: Кабан   (10.06.2008 в 15:28)   личное сообщение
 
 

так?

SELECT Таблица4.IDMap, Таблица4.IDMC, Таблица4.IDTU, Таблица4.Num, Таблица4.IDm
FROM Таблица4
WHERE (((Таблица4.Num) In (SELECT Min(a.Num) 
FROM Таблица4 as a
WHERE  a.IDm =Таблица4.IDm  and a.IDMC=Таблица4.IDMC;
)));

  Ответить  
 
 автор: Mak&S   (10.06.2008 в 15:44)   личное сообщение
 
 

Снимаю шляпу . Оно

  Ответить  
 
 автор: Анатолий (Киев)   (10.06.2008 в 16:27)   личное сообщение
 
 

Создаете запрос с Group By по IDMC и IDm, Min(Num) As Num
Если б не поля IDMap и IDTU, то этого было б достаточно.

Строим запрос2 на таблице и запросе1. Связываем их по полям IDMC, IDm, Num, Group By по IDMC и IDm, First для других полей.

Если результат понравится, можно объединить это в одном запросе2. Для этого копируете SQL запроса1 (без завершающей ";") и в режиме SQL запроса2 строку:

...FROM Таблица INNER JOIN запрос1 ON..

заменить на:

...FROM Таблица INNER JOIN (Текст запроса1) AS запрос1 ON ...

  Ответить  
 
 автор: Анатолий (Киев)   (10.06.2008 в 16:41)   личное сообщение
 
 

Да, у коллеги КАБАН попроще будет, чем у меня...
Вот только при повторяющеся в группе минимальной сумме будет возвращать по несколько записей.

  Ответить  
 
 автор: Кабан   (10.06.2008 в 17:24)   личное сообщение
 
 

в условиях об этом вроде ничего не было сказано :)

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