- •«Компьютерная подготовка» с применением субд access Выпуск 1
- •Введение
- •Лабораторная работа
- •567;«Электрочайник»;
- •222;«Вентилятор»
- •Редактирование таблицы
- •Сортировка данных
- •Инструментов – кнопка «Сортировка по возрастанию/убыванию» Копирование таблицы
- •Часть 2. Основные задачи части 2.
- •Основные понятия
- •Использование фильтров
- •Простой фильтр
- •Запросы по условиям
- •Запрос с параметром
- •Часть 3. Основные задачи части 3.
- •Создание вычисляемого поля в запросах
- •Запрос с итоговыми вычислениями
- •Запрос на создание таблицы
- •Запрос на удаление
- •Запрос на добавление
- •Запрос на обновление записей
- •Рис 3.19
- •Часть 4. Основные задачи части 4.
- •FromФирма
- •Часть 5. Основные задачи части 5.
- •Создание запроса со средним по всей таблице
- •Создание запроса со средним по группам и средним по всей таблице
- •Создание запроса с максимумом по всей таблице
- •По всей таблице
- •Создание перекрестного запроса
- •Литература
Создание запроса со средним по группам и средним по всей таблице
В этих запросах условие отбора применяется не к каждой записи, а к группе записей, т.е. к итоговым записям. Эти условия записываются в строке Условие отборав режиме конструктора или в предложенииHAVING режима SQL, и могут использовать только те столбцы, которые указаны в предложенииGROUP BY(группировка), а также итоговые функции и выражения, содержащие итоговые функции. Предложение HAVING ставится после предложения GROUP BY.
Задача 5.2.По каждому предприятию вычислить средний выпуск и вывести информацию о тех предприятиях, у которых средний выпуск меньше общего среднего по таблице.
Эту задачу можно решить двумя способами:
- создав запрос, который вычисляет средний годовой выпуск по каждому предприятию Зап2, и используя запросЗап1из предыдущей задачи (Средний годовой выпуск по всей таблице), объединив эти запросы в одинЗап3–запрос на выборку.
Конструктор запроса Зап2 имеет следующий вид (рис. 5.5).

Рис. 5.5
В свойствах поля Godв свойствеПодписьзапишем название столбцаСредний выпуск,а для свойстваФорматвыберем значениефиксированный.
Конструктор запроса Зап3 использует в качестве источника записей запросыЗап1иЗап2и имеет следующий вид (рис. 5.6):

Рис. 5.6
В свойствах поля Avg-God из Зап1в свойствеПодписьзапишем названия столбцаОбщий среднийи в свойствеФорматвыберем значениефиксированный.
Запрос Зап2 в режимеSQLбудет следующимSELECTFirm, Avg([god]) AS [Средний выпуск]
FROMФирма
GROUP BYFirm;
Запрос Зап3в режимеSQLбудет следующим
SELECT Зап2.*, Зап1.[Avg-God] AS [Общий средний ]
FROMЗап1,Зап2
WHERE([Зап2].[Avg-God]<=[Зап1].[Avg-God]); Результат запросаЗап3 представлен на рис. 5.7.

Рис. 5.7
Такой же результат можно получить с помощью одного запроса, используя SQL запрос в качестве условия отбора.

Рис. 5.8
Этот запрос на языке запросов будет следующим:
SELECTFirm, Avg(God) AS [Средний вып.],(SelectAvg(God)From Фирма) AS
[Общий средний ] FROM Фирма
GROUP BYFirm
HAVING(Avg(God) <= (SelectAvg(God)FromФирма));
Сохраним запрос с именем Зап4.
Результат запроса такой же, как на рис. 5.7.
Создание запроса с максимумом по всей таблице
Задача 5.3.Вывести информацию об изделиях и предприятиях с максимальным годовым выпуском.
Задачу можно решить двумя способами. С помощью двух запросов и с помощью запроса с подзапросом.
Первый запрос находит максимальный годовой выпуск по всей таблице(Зап1).
В режиме SQLэтот запрос выглядит следующим образом :
SELECTMax(God) as [Max-God]
FROMФирма;
Результат такого запроса – число, равное наибольшему из всех значений по-
ля God получим в виде таблицы (рис. 5.9).

Рис. 5.9
Второй запрос выбирает все записи из
таблицы, в которых годовой выпуск равен
максимальному по таблице. Конструктор
этого запроса на рис. 5.10.
Рис. 5.10
Объектами этого запроса являются таблица Фирмаи запросЗап1. В запросе предусматривается вывод всех записей, для которых значение поля God равно полю Max-God, вычисленному в запросе Зап1.
SELECT *
FROMФирма, Зап1
WHERE God.=[Зап1].[Max-God];
Здесь в операторе FROM указаны имя таблицы и имя запроса, а в операторе WHERE в условном выражении указано уточненное имя из запроса ([Зап1].[Max God]).
Результат запроса на рисунке 5.11
Рис. 5.11.
Другим способом решения этой задачи является создание запроса с подзапросом.
Конструктор запроса представлен на рис. 5.12.

Рис. 5.12
Источником данных для этого запроса является только таблица Фирма. Здесь в качестве условия отбора записей используетсяSQLзапрос, в котором вычисляется максимальный годовой выпуск по всей таблице.
SELECT *
FROMФирма
WHERE((God)=(SelectMax(God)FromФирма));
Создание запроса с максимумом по группам и максимумом и средним
