Выборка повторяющихся записей

Для создания запроса на поиск повторяющихся записей проще всего воспользоваться услугами соответствующего мастера. Нажмите кнопку Создать окна базы данных и из списка в окне Новый запрос выберите пункт Повторяющиеся записи. На экране появится первое окно мастера (см. рис. 2.8(а)). Выберите из списка в этом окне таблицу Заказы и нажмите кнопку Далее. В списке доступных полей во втором окне мастера выберите поле КодКлиента и нажмите кнопку с изображением ">", после чего — кнопку Далее. ( см. рис. 2.8(б)). В третьем окне мастера по созданию запроса просто нажмите кнопку Далее, в четвертом — кнопку Готово. В итоге Microsoft Access создаст запрос под именем Поиск повторений для Заказы, выбирающий клиентов из таблицы Заказы, записи о которых встречаются более одного раза, и подсчитывающий количество упоминаний о них. Запрос представлен на рис. 2.9.

Рис. 2.8. Окно мастера Поиск повторяющихся записей.

Рис. 2.9. Запрос для поиска повторяющихся записей

Пояснения

а). Поле КодКлиента в бланке запроса фигурирует три раза — один раз с групповой операцией First, второй раз с групповой операцией Count, а третий раз с групповой операцией Группировка. Это приводит к тому, что все клиенты группируются по коду клиента, для каждой группировки в поле КодКлиента поле выбирается первое попавшееся значение (а оно для всех записей, входящих в каждую группировку, — одинаковое) и подсчитывается количество записей в конкретной группировке (при помощи функции Count). Если убрать из бланка запроса поле КодКлиента с групповой операцией Группировка, то запрос выдаст в режиме таблицы всего одну запись, а именно — первый попавшийся код клиента и общее количество записей таблицы Заказы.

б). Запрос, созданный мастером, можно подкорректировать в режиме конструктора — изменить названия полей, задать подходящий порядок сортировки, добавить еще какие-либо поля.

в). Конструкция SQL HAVING используется только в случае применения групповых операций и в SQL-операторе следует непосредственно за предложением GROUP BY. Так же как и конструкция WHERE, конструкция HAVING задает условия, налагаемые на записи. Формат условных выражений для обеих конструкций одинаков. Смысл использования предложений WHERE и HAVING следующий: условия, задаваемые в конструкции WHERE, используются на этапе начального отбора записей (до группировки); условия же конструкции HAVING налагают ограничения на уже отобранные и сгруппированные записи, т.е. в результирующий набор записей, отображаемый в режиме таблицы, попадут только те из уже сгруппированных записей, которые удовлетворяют всем условиям конструкции HAVING.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: