Смекни!
smekni.com

Автоматизация и учет поставок товаров (стр. 4 из 6)

Рисунок 18 – Запрос «Новая цена товара определенного вида» в режиме конструктора

Результат запроса в режиме таблицы представлен на рисунке 19.

Рисунок 19 – Запрос «Новая цена товара определенного вида» в режиме таблицы

Текст запроса «Новая цена товара определенного вида» в режиме SQL:

SELECT Товар.кодТовара, Товар.названиеТовара, ВидТовара.кодВида, Товар.стоимостьЕдиницыПродукции, [стоимостьЕдиницыПродукции]+500 AS НоваяЦена

FROM ВидТовара INNER JOIN Товар ON ВидТовара.кодВида = Товар.кодВида

WHERE (((ВидТовара.кодВида)=3));

Запрос 5. Теперь создадим запрос на обновление для подсчета стоимости поставок.Для реализации этого запроса загружаем «Конструктор запросов», затем в меню «Запрос» вызываем команду «Обновление», добавляем таблицы «Поставка» и «Товар», выбираем поле «Стоимость поставки»и в появившуюся строку «Обновить» конструктора запросов вводим выражение: [стоимостьЕдиницыПродукции]*[количествоПоставленныхТоваров]. Чтобы расчет выполнялся только для тех записей, для которых стоимость ещё не вычислена, в строке «Условие отбора» пишем выражение «IsNull». После запуска запроса на выполнение появится диалоговое окно, в котором нужно нажать кнопку «Да». Запрос в режиме конструктора представлен на рисунке 20.

Рисунок 20 – Запрос «Стоимость поставок» в режиме конструктора

Результаты запроса в режиме таблицы представлены на рисунке 21.

Рисунок 21 - Запрос «Стоимость поставок» в режиме таблицы

Текст запроса «Стоимость поставок» в режиме SQL:

UPDATE Товар INNER JOIN Поставка ON Товар.кодТовара = Поставка.кодТовара SET Поставка.стоимостьПоставки = [количествоПоставленныхЕдиниц]*[стоимостьЕдиницыПродукции]

WHERE (((Поставка.стоимостьПоставки) Is Null));

Запрос 6. Создадим запрос для вычисления средней цены каждого вида товара. Для этого нажмем кнопку «Запросы» на панели «Объекты» окна базы данных, затем кнопку «Создание запроса в режиме конструктора». Щелчком мыши выделим таблицы «Вид товара» и «Товар» и нажмем кнопку «Добавить», затем кнопку «Закрыть». Далее добавим в бланк запроса поле «Вид товара» из таблицы «Вид товара» и поле «Стоимость единицы продукции» из таблицы «Товар». Проверим наличие флажков в строке «Вывод на экран» бланка запроса для всех добавленных полей. Затем включим отображение строки «Групповая операция» в бланке запроса, для чего щелкнем на кнопке

на панели инструментов конструктора запросов, чтобы в бланке запроса появилась строка «Групповая операция», или выполним команду меню «Вид/Групповые операции» или установим курсор мышки на одно из полей запроса в бланке запросов, нажмем правую клавишу мышки и выполним команду «Групповые операции». Теперь укажем, что для каждого вида товара должна быть вычислена средняя цена. Для этого в строке «Групповая операция» бланка запроса для поля «Стоимость единицы продукции» выберем из списка функцию Avg. Для этого поля зададим следующие свойства: формат поля – денежный, число десятичных знаков – 0. Зададим сортировку записей динамической таблицы по возрастанию по итоговому полю. Для этого в строке «Сортировка» бланка запроса для поля «Оценка» выберите из списка «по возрастанию». Присвоим вычисляемому полю имя «Средняя цена». Для чего щелчком мыши, установив текстовый курсор перед именем поля «Стоимость единицы продукции», введем «Средняя цена:». Запрос в режиме конструктора представлен на рисунке 22.

Рисунок 22 – Запрос «Средняя цена каждого вида» в режиме конструктора

Данный запрос в режиме таблицы представлен на рисунке 23.

Рисунок 23 – Запрос «Средняя цена каждого вида» в режиме таблицы

Текст запроса «Средняя цена каждого вида» в режиме SQL:

SELECT ВидТовара.видТовара, Avg(Товар.стоимостьЕдиницыПродукции) AS [Средняя стоимость]

FROM ВидТовара INNER JOIN Товар ON ВидТовара.кодВида = Товар.кодВида

GROUP BY ВидТовара.видТовара

ORDER BY Avg(Товар.стоимостьЕдиницыПродукции);

Запрос 7. Создадим итоговый запрос для подсчета количества поставок, осуществленных каждым поставщиком. Для этого нажмем кнопку «Запросы» на панели «Объекты» окна базы данных, затем кнопку «Создание запроса в режиме конструктора». Щелчком мыши выделим таблицы «Поставка» и «Поставщик» и нажмем кнопку «Добавить», затем кнопку «Закрыть». Проверим наличие флажков в строке «Вывод на экран» бланка запроса для всех добавленных полей. Затем включим отображение строки «Групповая операция» в бланке запроса, для чего щелкнем на кнопке

на панели инструментов конструктора запросов, чтобы в бланке запроса появилась строка «Групповая операция», или выполним команду меню «Вид/Групповые операции» или установим курсор мышки на одно из полей запроса в бланке запросов, нажмем правую клавишу мышки и выполним команду «Групповые операции». Теперь укажем, что для каждого поставщика должно быть вычислено количество поставок, которые он осуществил. Для этого в строке «Групповая операция» бланка запроса для поля «Код поставки» выберем из списка функцию Count. Далее присвоим вычисляемому полю имя «Количество поставок». Для чего щелчком мыши, установив текстовый курсор перед именем поля «Код поставки» и введем «Количество поставок:». Сохраним запрос, выполнив команду меню «Файл/Сохранить», в поле имя запроса введем: «Количество поставок»и нажмем ОК. Запрос в режиме конструктора представлен на рисунке 24.

Рисунок 24 – Запрос «Количество поставок» в режиме конструктора

Данный запрос в режиме таблицы представлен на рисунке 25.

Рисунок 25 - Запрос «Количество поставок» в режиме таблицы

Текст запроса «Количество поставок» в режиме SQL:

SELECT Поставка.кодПоставщика, Поставщик.поставщик, Count(Поставка.кодПоставки) AS [Количество поставок]

FROM Поставщик INNER JOIN Поставка ON Поставщик.кодПоставщика = Поставка.кодПоставщика

GROUP BY Поставка.кодПоставщика, Поставщик.поставщик;

Запрос 8. Создадим запрос для подсчета количества товаров, поставленных каждым поставщиком. Для этого нажмем кнопку «Запросы» на панели «Объекты» окна базы данных, затем кнопку «Создание запроса в режиме конструктора». Щелчком мыши выделим таблицы «Поставка» и «Поставщик» и нажмем кнопку «Добавить», затем кнопку «Закрыть». Проверим наличие флажков в строке «Вывод на экран» бланка запроса для всех добавленных полей. Затем включим отображение строки «Групповая операция» в бланке запроса, для чего щелкнем на кнопке

на панели инструментов конструктора запросов, чтобы в бланке запроса появилась строка «Групповая операция», или выполним команду меню «Вид/Групповые операции» или установим курсор мышки на одно из полей запроса в бланке запросов, нажмем правую клавишу мышки и выполним команду «Групповые операции». Теперь укажем, что для каждого поставщика должно быть вычислено количество всех поставленных единиц товаров. Для этого в строке «Групповая операция» бланка запроса для поля «Количество поставленных единиц» выберем из списка функцию Sum. Далее присвоим вычисляемому полю имя «Количество товаров». Для этого щелчком мыши установим текстовый курсор перед именем поля «Количество поставленных единиц» и введем «Количество товаров:». Сохраним запрос, выполнив команду меню «Файл/Сохранить», в поле имя запроса введем: «Количество товаров, поставленных всего каждым поставщиком»и нажмем ОК. Запрос в режиме конструктора представлен на рисунке 26.

Рисунок 26 – Запрос «Количество товаров, поставленных всего каждым поставщиком» в режиме конструктора

Данный запрос в режиме таблицы представлен на рисунке 27.

Рисунок 27 – Запрос «Количество товаров, поставленных всего каждым поставщиком» в режиме таблицы

Текст запроса «Количество товаров, поставленных всего каждым поставщиком» в режиме SQL:

SELECT Поставка.кодПоставщика, Поставщик.поставщик, Sum(Поставка.количествоПоставленныхЕдиниц) AS [Количество товаров]

FROM Поставщик INNER JOIN Поставка ON Поставщик.кодПоставщика = Поставка.кодПоставщика

GROUP BY Поставка.кодПоставщика, Поставщик.поставщик;

Запрос 9. Теперь создадим перекрестный запрос для подсчета количества поставленных единиц товара каждым поставщиком за все поставки. Чтобы это сделать, необходимо нажать кнопку «Запросы» на панели «Объекты» окна базы данных, затем кнопку «Создание запроса в режиме конструктора». Далее щелчком мыши выделим таблицы «Поставка» и «Поставщик» и нажмем кнопку «Добавить», затем кнопку «Закрыть». Добавим в бланк запроса поля «Поставщик» из таблицы «Поставщик» и поля «Код поставки», «Количество поставленных единиц» (2 раза) из таблицы «Поставка». Теперь определим тип создаваемого запроса. Для этого выполните команду меню «Запрос/Перекрестный». Далее укажем, что значения поля «Поставщик» будут использоваться в качестве заголовков строк, выбрав в строке «Перекрестная таблица» бланка запроса для этого поля из списка «Заголовки строк». Затем укажем, что значения поля «Код поставки» будут использоваться в качестве заголовков столбцов, выбрав в строке «Перекрестная таблица» бланка запроса для этого поля из списка «Заголовки столбцов». Теперь нужно указать, что поле «Количество поставленных единиц» содержит значения, на основании которых будет вычисляться количество всех поставленных товаров. Для этого нужно в строке «Перекрестная таблица» бланка запроса для поля «Количество поставленных единиц» выберите из списка «Значение», а далее в строке «Групповаяоперация» бланка запроса для поля «Количество поставленных единиц» выберем из списка функцию Sum. Добавим в перекрестный запрос столбец, содержащий сумму всех поставленных единиц товара за все поставки. Для этого нужно еще раз перенести в бланк запроса поле «Количество поставленных единиц», в строке «Перекрестная таблица» бланка запроса для этого поля выберем из списка «Заголовки строк», а затем в строке «Групповая операция» бланка запроса для этого поля выберите из списка функцию Sum. Присвоим вычисляемому полю имя «Всего товаров», установив щелчком мыши текстовый курсор перед именем поля «Количество поставленных единиц» и введя «Всего товаров:». Сохраним запрос в базе данных под именем «Всего поставлено товаров», для этого выполним команду меню «Файл/Сохранить», в поле имя запроса введем: «Всего поставлено товаров» и нажмем ОК. Запрос в режиме конструктора представлен на рисунке 28.