4.2 Обработка данных
Очевидно, что одной из главных задач
информационных систем является обработка
информации, и чем быстрее, надежнее и
точнее – тем лучше. С помощью языка SQL
есть возможность составить запросы,
как раз таки и являющиеся обработчиком
информации. В данной курсовой работе
имеется ряд запросов, которые и будут
рассмотрены ниже.
Запрос «Поставки в январе»
Рисунок
17 - Запрос «Поставки в январе» в
конструкторе запросов
Данный запрос выполняет довольно важную
функцию: показывает количество заказанного
магазином товара за месяц. Что немаловажно,
он отображает и общую сумму, которая
является вычисляемой по формуле. Ниже
приведен SQL вид запроса:
SELECT Поставка.Дата, Инструменты.Название,
Поставка.Количество,
[Количество]*[Инструменты]![Цена] AS Сумма
FROM Инструменты INNER JOIN Поставка ON
Инструменты.Код = Поставка.[Код инструмента]
WHERE (((Поставка.Дата) Like "*.01.2022"));
Рисунок
18 - Результат выполнения запроса «Поставки
в январе»
Результат запроса можно представить в
виде диаграммы, сводной таблицы и таблицы
обычной. Мы выберем последний вариант:
В ИС «Музыкальный магазин» есть два
аналогичных запроса, выводящих результат
поставок за февраль и март, поэтому мы
не будем их рассматривать и перейдем к
остальным запросам.
Запрос «Незаказанные товары»
Рисунок
19 - Запрос «Незаказанные товары» в
конструкторе запросов
Как можно догадаться из названия, этот
запрос выводит информацию о тех товарах,
которые ни разу не были заказаны в
течение всего времени.
Ниже приведен SQL вид
запроса:
SELECT Инструменты.Код, Инструменты.Название,
Инструменты.Цена
FROM Инструменты LEFT JOIN Поставка ON
Инструменты.Код = Поставка.[Код инструмента]
WHERE (((Поставка.[Код инструмента]) Is
Null));
Рисунок
20 - Результат выполнения запроса
«Незаказанные товары»
Запрос «Продажа за январь»
Рисунок
21 - Запрос «Продажа за январь» в
конструкторе запросов
Следующий запрос рассматривает количество
проданного товара за месяц и выводит
количество и сумму по каждому инструменту.
Ниже приведен SQL вид
запроса:
SELECT Продажа.Дата, Инструменты.Название,
Продажа.Количество,
([Инструменты]![Цена]*[Продажа]![Количество])+(([Инструменты]![Цена]*[Продажа]![Количество])*0.25)
AS Сумма
FROM Инструменты INNER JOIN Продажа ON
Инструменты.Код = Продажа.[Код инструмента]
WHERE (((Продажа.Дата)
Like "*.01.2022"))
ORDER BY Продажа.Дата;
Рисунок
22 - Результат выполнения запроса «Продажи
за январь»
Запросы «Продажи за февраль» и «Продажи
за март» работают аналогичным образом.
Запрос «Топ продаж»
Рисунок
23 - Запрос «Топ продаж» в конструкторе
запросов
Данный запрос выводит список самых
продаваемых товаров за весь период
(сюда входит товар, который покупали не
менее 4 раз).
Ниже приведен SQL вид
запроса:
SELECT Инструменты.Код, Инструменты.Название,
Sum(Продажа.Количество) AS [Sum-Количество]
FROM Инструменты INNER JOIN Продажа ON
Инструменты.Код = Продажа.[Код инструмента]
GROUP BY Инструменты.Код, Инструменты.Название
HAVING (((Sum(Продажа.Количество))>=4))
ORDER BY Sum(Продажа.Количество);
Рисунок
24 - Результат выполнения запроса «Топ
продаж»
Рисунок
25 - Запрос «Непроданные товары» в
конструкторе запросов
Запрос «Непроданные товары»
По аналогии с запросом «Незаказанные
товары», данный запрос выводит информацию
о тех товарах, которые не были проданы.
Ниже приведен SQL вид
запроса:
SELECT Инструменты.Код, Инструменты.Название,
Инструменты.Цена
FROM Инструменты LEFT JOIN Продажа ON
Инструменты.Код = Продажа.[Код инструмента]
WHERE (((Продажа.[Код инструмента]) Is
Null));
Рисунок
26 - Результат выполнения запроса
«Непроданные товары»
Рисунок
27 - Запрос «Наличие на складе» в
конструкторе запросов
Запрос «Наличие на складе» на создание
таблицы
Рисунок
28 - Таблица «Наличие», создаваемая
запросом
Данный запрос является запросом на
создание таблицы. Выбираются те товары,
которые на текущую дату имеются на
складе. Все данные собираются и заносятся
в специально создаваемую таблицу
«Наличие»:
Ниже приведен SQL вид
запроса:
SELECT Поставка.Дата, Поставщики.Название,
Инструменты.Название, Поставка.Количество,
Инструменты.Цена INTO Наличие
FROM Поставщики INNER JOIN (Инструменты INNER
JOIN Поставка ON Инструменты.Код =
Поставка.[Код инструмента]) ON Поставщики.Код
= Поставка.[Код поставщика]
WHERE (((Поставка.Дата)<=Now()));