Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Запросы Отчёты Формы в БД.doc
Скачиваний:
24
Добавлен:
04.12.2018
Размер:
9.15 Mб
Скачать

7 Запрос “Книги ведущих изд-в”– Выбрать книги ведущих издательств.

Исп-ть:

  1. Запрос “Ведущие изд-ва”

  2. Таблица “Книги” со всеми полями

  3. Таблица “формат” (Поле “Название формата”)

  4. Таблица “Раздел” (Поле “Название раздела”)

  5. Таблица “формат” (Поле “Название формата”)

  6. Таблица “Переплёт” (Поле “Название Переплёта”)

  7. Вычисляемое поле “Прив_объём” (Коэф_прив*кол-во стр)

  8. Вычисляемое поле “Общий объём” (Коэф_прив*кол-во стр*тираж)

  9. Вычисляемое поле “Общ_Стоим” (тираж*цена)

Связать Запрос “Ведущие изд-ва” и Таблицу “Книги”по полю “Код изд-ва”

Продолжение Запроса в режиме Конструктора:

В режиме SQL:

SELECT Разделы.[Код раздела], Разделы.[Название раздела], [Ведущие Изд-ва].[Код издательства], [Ведущие Изд-ва].[Название издательства], Книги.[Автор и название], Книги.Тираж, Книги.Объем, Книги.Цена, Книги!Тираж*Книги!Цена AS Общ_Стоим, Int(Форматы!коэф_прив*Книги!Объем*10)/10 AS Прив_объём, Int(Форматы!коэф_прив*Книги!Объем*Книги!Тираж) AS Общ_Прив_объём, Книги.[Код переплета], Книги.[Код формата], Книги.[Год издания], Книги.[Код книги], Форматы.[Обозначение формата], Переплёты.[Обозначение переплёта], Форматы.коэф_прив

FROM Форматы INNER JOIN (Разделы INNER JOIN (Переплёты INNER JOIN (Книги INNER JOIN [Ведущие Изд-ва] ON Книги.[Код издательства] = [Ведущие Изд-ва].[Код издательства]) ON Переплёты.[Код переплёта] = Книги.[Код переплета]) ON Разделы.[Код раздела] = Книги.[Код раздела]) ON Форматы.[Код формата] = Книги.[Код формата];

Результат Запроса “Книги ведущих изд-в”:

Запрос 8. После просмотра результата создать на основе этого запроса Таблицу “Таблица для регрессии”.

Последовательность действий:

  • Закрыть Запрос 7 “Книги ведущих издательств”

  • Скопировать Запрос 7 в “Запрос 8 Создание Таблицы”

  • Открыть “Запрос 8 Создание Таблицы” в режиме Конструктора

  • Выбрать тип запроса “Создание Таблицы” (Правая кнопка мыши по окну запроса - Тип Запроса – Создание Таблицы):

  • Ввести название таблицы “Таблица для регрессии”.

  • Запустить запрос на выполнение - Таблица создаётся при запуске этого запроса.

9 Запрос – перекрёстный (Назвать “Перекрёстный”).

Задача – вывести кол-во книг по разделам 1,2,6,8,9 для ведущих издательств.

  1. Строки – Названия издательств (и коды издательств).

  2. Столбцы – Названия разделов книг.

  3. На пересечении строк и столбцов - кол-во книг по разделам у каждого из издательств.

Нужны:

1)Таблицы:

  1. Книги (для подсчёта кол-ва книг по разделам)

  2. Разделы – поле “Название раздела”

2)Запрос:

  1. “Ведущие изд-ва” – эту Таблицу надо связать с Таблицей “Книги” по полю “Код изд-ва” (для выбора только ведущих изд-в).

Начинаем создавать обычный Запрос на выборку в режиме Конструктора:

Возникает строка в Таблице Конструктора Запроса: Перекрёстная Таблица

Задаём:

  1. полю “Название изд-в” значение “Заголовки строк”

  2. полю “Название раздела” - значение “Заголовки столбцов”:

  3. полю “Кол-во книг” - значение “Значение”

Результат перекрёстного Запроса:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

SQL:

TRANSFORM Count(Книги.[Код книги]) AS [Кол-во книг]

SELECT [Ведущие Изд-ва].[Название издательства]

FROM Разделы INNER JOIN (Книги INNER JOIN [Ведущие Изд-ва] ON Книги.[Код издательства] = [Ведущие Изд-ва].[Код издательства]) ON Разделы.[Код раздела] = Книги.[Код раздела]

WHERE (((Разделы.[Код раздела])=1 Or (Разделы.[Код раздела])=2 Or (Разделы.[Код раздела])=6 Or (Разделы.[Код раздела])=8 Or (Разделы.[Код раздела])=9))

GROUP BY [Ведущие Изд-ва].[Название издательства], Разделы.[Код раздела]

PIVOT Разделы.[Название раздела];

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!