Поиск записей, не имеющих подчиненных

Такой запрос позволяет найти в таблице записи, у которых нет записей в подчинённой таблице.

Пример 16. Получить сведения о предприятиях, которые не произвели оплату.

Удалить из таблицы ПЛАТЕЖИ две записи, которые относятся к предприятию с кодом 103 (Север). Таким образом, данное предприятие не производило выплат. Создать запрос, с помощью которого можно определить неплательщика.

Запрос строим на таблицах ПРЕДПРИЯТИЯ и ПЛАТЕЖИ, последовательно выполняя следующие действия:

· запустим Мастер запросов

Поиск записей, не имеющих подчиненных - student2.ru

· в открывшемся окне выберем из списка «Записи без подчинённых», нажать ОК;

Поиск записей, не имеющих подчиненных - student2.ru

· В окне «Поиск записей, не имеющих подчинённых» выбрать таблицу ПРЕДПРИЯТИЯ, нажать Далее;

Поиск записей, не имеющих подчиненных - student2.ru

· В следующем окне выбрать таблицу ПЛАТЕЖИ, Далее.

· В следующем окне щёлкнуть по кнопке Поиск записей, не имеющих подчиненных - student2.ru , затем Далее.

· Выбрать поля: Код предприятияиНаименование предприятия, для чего нажать кнопку Поиск записей, не имеющих подчиненных - student2.ru , а затем - Далее.

· Нажать Готово.

· Запрос автоматически получит имя ‘ПРЕДПРИЯТИЯ’ без подчинённых ‘ПЛАТЕЖИ’. В результате получим :

Поиск записей, не имеющих подчиненных - student2.ru

Примечание:восстановить удалённые записи в таблице ПЛАТЕЖИ и СПЕЦИФИКАЦИЯ ПЛАТЕЖЕЙ.

Вычисления нарастающим итогом

Пример 17. Используя сведения о платежах, получить общую оплату по каждому предприятию нарастающим итогом от начала года.

Сначала дополним базу данных таблицей КАЛЕНДАРЬ, где № МЕСЯЦА - ключевое текстовое поле и НАИМЕНОВАНИЕ МЕС - текстовое поле.

№ МЕСЯЦА НАИМЕНОВАНИЕ МЕСЯЦА
Январь
Февраль
Март
Апрель

Количество месяцев в календаре зависит от того периода, на который вычисляются нарастающие итоги.

Рассмотрим решение задачи по шагам.

Шаг 1. На основе таблиц ПЛАТЕЖИ и СПЕЦИФИКАЦИЯ ПЛАТЕЖЕЙ создадим запрос, в котором преобразуем дату в месяц (числовой) и вычислим суммы выплат каждого предприятия по месяцам.

Поиск записей, не имеющих подчиненных - student2.ru

В результате выполнения запроса получим:

Поиск записей, не имеющих подчиненных - student2.ru

Сохраним запрос под именем Суммы выплат по месяцам.

Шаг 2. На основе предыдущего запроса и таблицы календарь создадим запрос, в котором получим суммы нарастающим итогом.

Объекты не связывать!

Поиск записей, не имеющих подчиненных - student2.ru

Группировка выполняется по предприятиям, а затем по месяцам. В этих группах суммируются Sum-Cумма. Суммируются суммы оплаты при условии, что месяц оплаты <= (меньше или равен) месяцу календаря, то есть в пределах календаря.

При выполнении запроса получим:

Поиск записей, не имеющих подчиненных - student2.ru

Назвать запрос Нарастающие суммы.

Шаг 3. Если сумма в каждом следующем месяце не меняется, то получить итоги по последнему месяцу, в котором произошли изменения. Для этого использовать функцию Min для месяца. Запрос строим на основе предыдущего запроса.

Поиск записей, не имеющих подчиненных - student2.ru

Выполнить запрос:

Поиск записей, не имеющих подчиненных - student2.ru

Присвоить запросу имя Нарастающий итог.

Наши рекомендации