разработка базы данных для ресторана фастыуда. Курсовая работа по дисциплине Разработка базы данных для автоматизации учёта продаж и аренды товаров в свадебном салоне
Скачать 1.61 Mb.
|
3.2 Реализация запросов к базе данныхДля удобства работы с базой данных создадим соответствующие запросы(для определения информации по сотрудникам, клиентам, товарам; для контроля продажи и аренды товаров; для внесение в базу данных и вынесения; для создании таблицы по итогам продажи и аренды; для обновления общей стоимости и так далее).[11] Запрос 1. Создадим запрос на создание таблицы. Для вычисления итоговой стоимости продажи необходимо вычислить стоимость товаров каждой категории (фата, перчатки, платья) приобретаемые клиентами. Для вычисления стоимости платьев в одном заказе создадим таблицу целью отдельного вывода кода продажи и стоимости платьев. Из таблицы «Продажа платьев» выбираем «КодПродажи», из таблицы «Платья» выбираем «ЦенаПродажиПлатья». «Групповая операция» для «КодПродажи» «Группировка». Для поля «ЦенаПродажиПлатья» выбираем итоговую функцию Sum и даем название таблицы «ПЛАТЬЯ: цены участвующих в продаже». Аналогично создадим запросы для фаты и перчаток. Вид запроса 1 в режиме конструктора представлен на рисунке 24, а его результат на рисунке 25. Рисунок 24 Запрос 1 в режиме конструктора Рисунок 25 Результат запроса 1 Текст запроса на языке SQL: SELECT [Продажа платьев].КодПродажи, Sum(Платья.ЦенаПродажиПлатья) AS [стоимость участвующих платьев] INTO [ПЛАТЬЯ: цены участвующих в продаже] FROM Продажа INNER JOIN (Платья INNER JOIN [Продажа платьев] ON Платья.КодПлатья = [Продажа платьев].КодПлатья) ON Продажа.КодПродажи = [Продажа платьев].КодПродажи GROUP BY [Продажа платьев].КодПродажи; Запрос 2. Создадим запрос на обновление, который позволит вывести итоговую стоимость из таблицы «ПЛАТЬЯ: цены участвующих в продаже» (запрос 1) в таблицу «Продажа». Для этого выберем поле «Итоговая стоимость» из таблицы «Продажа». В «Обновление» напишем «[ПЛАТЬЯ: цены участвующих в продаже]![стоимость участвующих платьев]». Вид запроса в режиме конструктора представлен на рисунке 26, а на рисунке 27 его результат. Рисунок 26 Запрос 2 в режиме конструктора Рисунок 27 Результат запроса 2 Текст запроса на языке SQL: UPDATE [Стоимость за платья] INNER JOIN Продажа ON [Стоимость за платья].КодПродажи = Продажа.КодПродажи SET Продажа.ИтоговаяСтоимостьПродажи = [Стоимость за платья]![Сумма по платьям]; Запрос 3. Создадим запрос на обновление, который будет расчитывать итоговую стоимость продажи в таблице «Продажа» с учётом стоимости перчаток, если таковы имеются в продаже (из таблицы «ПЕРЧАТКИ: цены участвующих в продаже»). Для этого выберем поле «ИтоговаяСтоимостьПродажи». «Обновление» для «[Продажа]![ИтоговаяСтоимостьПродажи]+[ПЕРЧАТКИ: цены участвующих в продаже]![стоимость участвующих перчаток]». Вид запроса в режиме конструктора представлен на рисунке 28, а на рисунке 29 его результат. Рисунок 28 Запрос 3 в режиме конструктора Рисунок 29 Результат запроса 3 Текст запроса на языке SQL: UPDATE Продажа INNER JOIN [ПЕРЧАТКИ: цены участвующих в продаже] ON Продажа.КодПродажи = [ПЕРЧАТКИ: цены участвующих в продаже].КодПродажи SET Продажа.ИтоговаяСтоимостьПродажи = [Продажа]![ИтоговаяСтоимостьПродажи]+[ПЕРЧАТКИ: цены участвующих в продаже]![стоимость участвующих перчаток]; Запрос 4. Создадим запрос на выборку, который позволит получить информацию о клиенте. Из таблицы «Клиент» выбираем все поля. Предоставим сотруднику возможность посмотреть определенного клиента, для этого в условиях отбора для поля «ID-Клиента» укажем [Введите ID-Клиента]. Вид запроса в режиме конструктора представлен на рисунке 30, а на рисунке 31 его результат. Рисунок 30 Запрос 4 в режиме конструктора Рисунок 31 Результат запроса 4 Текст запроса на языке SQL: SELECT Клиенты.[ID-клиента], Клиенты.Фамилия, Клиенты.Имя, Клиенты.Отчество, Клиенты.ДатаРождения, Клиенты.КонтактныйНомерТелефона FROM Клиенты WHERE (((Клиенты.[ID-клиента])=[Введите ID-Клиента])); Запрос 5. Создадим запрос на добавление, который позволит нам дабавить в таблицу «Клиенты» нового клиента. Из таблицы «Клиенты» выбираем все поля. В строке «Поле» новые выражения для каждого свое. В строке «Добавление» имена полей. Вид запроса в режиме конструктора представлен на рисунке 32, а на рисунке 33 его результат. Рисунок 32 Запрос 5 в режиме конструктора Рисунок 33 Результат запроса 5 Текст запроса на языке SQL: INSERT INTO Клиенты ( [ID-клиента], Фамилия, Имя, Отчество, ДатаРождения, КонтактныйНомерТелефона ) SELECT [Введите ID-клиента] AS [ID-клиента], [Введите фамилию] AS Фамилия, [Введите имя] AS Имя, [Введите отчество] AS Отчество, [Введите дату рождения] AS ДатаРождения, [Введите номер телефона] AS КонтактныйНомерТелефона FROM Клиенты; Запрос 6. Создадим запрос на удаление, который позволит удалить клиента из базы данных. Из таблицы «Клиент» выбираем все поля и для всех выбранных полей ставим в «Удаление» выбираем «Условие». В «Условия отбора» для поля «ID-Клиента» укажем [Введите ID-Клиента]. Вид запроса в режиме конструктора представлен на рисунке 34, а на рисунке 35 его результат. Рисунок 34 Запрос 6 в режиме конструктора Рисунок 35 Результат запроса 6 Текст запроса на языке SQL: DELETE Клиенты.[ID-клиента], Клиенты.Фамилия, Клиенты.Имя, Клиенты.Отчество, Клиенты.ДатаРождения, Клиенты.КонтактныйНомерТелефона FROM Клиенты WHERE (((Клиенты.[ID-клиента])=[Введите ID-Клиента])); Запрос 7. Создадим запрос на обновление, который будет обновлять итоговую стоимость аренды платьев в таблице «Договор аренды». Для этого выберем поле «ИтоговаяСтоимостьАренды». «Обновление» для «ИтоговаяСтоимостьАренды» - «[Платья]![ЦенаАрендыЗа1Сутки]*([Договор аренды]![ДатаОкончанияДоговора]- [Договораренды]![ДатаЗаключенияДоговора])». Вид запроса в режиме конструктора представлен на рисунке 36, а на рисунке 37 его результат. Рисунок 36 Запрос 7 в режиме конструктора Рисунок 37 Результат запроса 7 Текст запроса на языке SQL: UPDATE Платья INNER JOIN ([Договор аренды] INNER JOIN [Аренда платьев] ON [Договор аренды].НомерДоговора = [Аренда платьев].НомерДоговора) ON Платья.КодПлатья = [Аренда платьев].КодПлатья SET [Договор аренды].ИтоговаяСтоимостьАренды = [Платья]![ЦенаАрендыЗа1Сутки]*([Договор аренды]![ДатаОкончанияДоговора]-[Договор аренды]![ДатаЗаключенияДоговора]); Запрос 8. Создадим перекрестный запрос, который отображает на какую сумму произвёл продажи тот или иной сотрудник по каждому месяцу и итоговую сумму продаж. Для этого из таблицы «Сотрудники» выберем поле «ФИО», из таблицы «Продажа» - «ИтоговаяСтоимостьПродажи». «Групповая операция» для «ФИО» «Группировка». В строке «Перекрестная таблица» устоновим «Заголовки строк. Для поля «ИтоговаяСтоимостьПродажи» в строке «Групповая операция» «Sum». В строке «Перекрестная таблица» устоновим «Значение». Вычислим итоговую сумму продаж по каждому сотруднику за все месяцы, для этого создадим поле «Итоговая сумма продаж». Установим в строке «Групповая операция» «Sum», а в строке «Перекрестная таблица» - «Заголовки строк». Для отображения месяцев создадим поле с выражением: [Format([ДатаПродажи];"mmm")]. Установим в строке «Групповая операция» «Группировка», а в строке «Перекрестная таблица» - «Заголовки столбцов». Вид запроса в режиме конструктора представлен на рисунке 40, а на рисунке 41 его результат. Рисунок 38 Запрос 8 в режиме конструктора Рисунок 39 Результат запроса 8 Рисунок 40 Продолжение результата запроса 8 Текст запроса на языке SQL: TRANSFORM Sum(Продажа.ИтоговаяСтоимостьПродажи) AS [Sum-ИтоговаяСтоимостьПродажи] SELECT Сотрудники.ФИО AS Сотрудники, Sum(Продажа.ИтоговаяСтоимостьПродажи) AS [Итоговая сумма продаж] FROM Сотрудники INNER JOIN Продажа ON Сотрудники.ТабельныйНомер = Продажа.ТабельныйНомер GROUP BY Сотрудники.ФИО PIVOT Format([ДатаПродажи],"mmm") In ("янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек"); Запрос 9. Создадим перекрестный запрос, который отображает суммарные стоимости и наименования платьев , проданные сотрудниками и итог по каждому сотруднику. Для этого из таблицы «Сотрудники» выберем поле «ФИО», из таблицы «Платья» - «Наименование» и из таблицы «Платья: цены участвующих в продаже» - «Стоимость участвующих платьев». «Групповая операция» для «ФИО» «Группировка». В строке «Перекрестная таблица» устоновим «Заголовки строк» для «ФИО». Для поля «Наименование» в строке «Групповая операция» «Группировка». В строке «Перекрестная таблица» устоновим «Заголовки столбцов». Для поля «Стоимость участвующих платьев» в строке «Групповая операция» выберем функцию «Sum», а в строке «Перекрестная таблица» установим «Значение». Вычислим итоговую сумму продаж платьев по каждому сотруднику, для этого создадим поле «Итого». Установим в строке «Групповая операция» «Sum», а в строке «Перекрестная таблица» установим «Заголовки строк». Вид запроса в режиме конструктора представлен на рисунке 42, а на рисунке 43 его результат. Рисунок 41 Запрос 9 в режиме конструктора Рисунок 42 Результат запроса 9 Текст запроса на языке SQL: TRANSFORM Sum([ПЛАТЬЯ: цены участвующих в продаже].[стоимость участвующих платьев]) AS [Sum-стоимость участвующих платьев] SELECT Сотрудники.ФИО, Sum([ПЛАТЬЯ: цены участвующих в продаже].[стоимость участвующих платьев]) AS Итого FROM Платья INNER JOIN (((Сотрудники INNER JOIN Продажа ON Сотрудники.ТабельныйНомер = Продажа.ТабельныйНомер) INNER JOIN [ПЛАТЬЯ: цены участвующих в продаже] ON Продажа.КодПродажи = [ПЛАТЬЯ: цены участвующих в продаже].КодПродажи) INNER JOIN [Продажа платьев] ON Продажа.КодПродажи = [Продажа платьев].КодПродажи) ON Платья.КодПлатья = [Продажа платьев].КодПлатья GROUP BY Сотрудники.ФИО PIVOT Платья.Наименование; 3.3 Создание отчетов Для эффективности отслеживания продажи и сдачи в аренду товаров сотрудниками и просмотр в наличии создаются соответствующие отчеты. Все отчеты создадим с помощью мастера отчетов. [15] Отчет 1. Создадим отчем, чтобы подвести итоги стоимости по прокату для каждого клиента. Из таблицы «Клиент» выносим поля «Фамилия», «Имя», «Отчество» и «ID-Клиента». Из таблицы «Договор аренды» выбираем поле «ИтоговаяСтоимостьАренды», «НомерДоговора», «ДатаЗаключения» и «ДатаОкончания». Для подсчета итоговой стоимости по каждому клиенту и по всей реализации прокатов выберем итоговую функцию Sum. Отчет с информацией о клиентах и стоимостей аренды представлен на рисунке В.1. Отчет 2. Создадим отчет, чтобы подвести итоги по сдаче в аренду товаров по каждому сотруднику. Из таблицы «Сотрудник» выносим поля «ФИО» и «ТабельныйНомер». Из таблицы «Договор аренды» выбираем поле «ИтоговаяСтоимостьАренды» и «НомерДоговора». Для подсчета итоговой стоимости по каждому сотруднику и по всей реализации прокатов выберем итоговую функцию Sum. Отчет с информацией об итоговой сумме по каждому сотруднику и по прокату в целом представлен на рисунке В.2. Отчет 3. Создадим отчет, чтобы подвести итоги стоимости по продаже товаров для каждого сотрудника. Из таблицы «Сотрудники» выносим поля «ФИО» и «ТабельныйНомер». Из таблицы «Продажа» выбираем поле «КодПродажи» и «ИтоговаяСтоимостьПродажи». Для подсчёта итоговой стоимости по каждому сотруднику и по всей реализации прокатов выберем итоговую функцию Sum. Отчет с информацией об итоговой сумме по каждому сотруднику и по прокату в целом представлен на рисунке В.3. |