Сформируем перекрестный запрос к базе данных для вывода ежемесячных продаж товара (по его коду) и ежеквартальных продаж товара (по его типу). Подобные таблицы, содержащие итоги, которые подводятся через определенные промежутки времени, например через каждый месяц или квартал, обычно используются в качестве данных для графиков. Создайте перекрестный запрос, в котором в строках выводятся товары, а в столбцах — соответствующие им ежемесячные объемы продаж. Для этого:
1.1. Создайте новый запрос в режиме Конструктора на основе данных из таблиц "Товары", "Заказы" и "Заказано".
1.2. Поместите поля «КодТовара» и «Марка» таблицы «Товары», а затем поле «ДатаРазмещения» таблицы «Заказы» в первые три столбца бланка запроса.
1.3. Выберите на вкладке Конструктор в разделе Тип запроса кнопкуПерекрестный запрос. В бланк запроса будут добавлены строки Перекрестная таблица и Групповая операция, в которую во всех столбцах автоматически вводится операция Группировка (рис. 14).
Рис. 14. Групповые операции
1.4. Выберите в списке строки Перекрестная таблицаистолбца «КодТовара» значение Заголовки строк. Выполните то же самое для столбца «Марка». Эти столбцы являются требуемыми заголовками строк перекрестной таблицы.
1.5. Выберите в списке строки Групповая операцияистолбца «ДатаРазмещения» значение Условие. В строке Условие отбораэтого столбца введите выражение <=#31.12.08# And >=#01.01.08# для вывода в перекрестной таблице данных, например, за 2008 год.
1.6. Установите курсор в первую ячейку пустого столбца и, вызвав Построитель выражений, введите выражение: Sum([Заказано]![Количество]* [Товары]![Цена]). Название функции Sum выберите в списке Функции/встроенные функции, а названия полей выберите в списке Таблицы. Закройте окно Построителя выражений. Перед введённым выражением автоматически появится Выражение 1:. Нажмите клавиши Shift+F2 и в открывшемся окне Областьввода, вместо Выражение 1 введите Объем продаж:.
Это будет поле, значение которого вычисляется с помощью описанного выражения, а название поля — «Объем продаж». В выражении используются поля из таблиц, которые включены в запрос, хотя поля в текст запроса не включены. Это означает, что при создании вычисляемого поля в выражение можно включать ссылки не только на поля самого запроса, но и на поля, которые не включаются в текст запроса. Важно, чтобы они были в исходных таблицах, а таблицы обязательно присутствовали в бланке запроса.
1.7. Выберите в строке Групповая операция столбца «Объём продаж» значение Выражение, а затем в строке Перекрестная таблица— значение Значение. В столбце «Объём продаж»вычисляется общий объем заказов на каждый товар, который будет подставляться в ячейки результирующей таблицы запроса (рис. 14).
1.8. Установите курсор в первую ячейку следующего пустого столбца и введите выражение Format([Заказы]![ДатаРазмещения];"mmm"). Функция Format в данном случае будет возвращать три первые буквы месяца от значения даты в столбце «ДатаРазмещения». С помощью этой функции создаётся еще одно вычисляемое поле в запросе. Выберите из списка в строке Перекрестная таблицаэтого столбца значение Заголовки столбцов.
Это означает, что данный столбец запроса будет преобразован в процессе выполнения запроса в строку, содержащую заголовки столбцов результирующей таблицы.
1.9. Нажмите кнопку Выполнить(восклицательный знак). Появится результирующее множество записей по тем месяцам, которые есть в вашей таблице «Заказы». Сохраните запрос под именем «Продажи по месяцам».