Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Групповые операции в запросах





Групповые операции — встроенные вычисления для расчета итоговых значений по группам записей с использованием статистических функций.

Задание 9. Вывести информацию о суммарном объеме продаж (в стоимостном выражении) на каждую дату продажи.

В задании 8 была определена сумма по каждой позиции продаж, поэтому запрос 8_сумма позиции продаж будет являться исходным для решения поставленной задачи.

Алгоритм выполнения задания:

1. Создать новый запрос. Исходный запрос — 8_сумма позиции продаж.

2. Расчет суммы продаж должен осуществляться по группам записей, относящихся к одинаковым датам. Группировка реализовывается в строке ГРУППОВАЯ ОПЕРАЦИЯ бланка запроса. Чтобы вывести соответствующую строчку необходимо в пункте меню ВИД выбрать команду ГРУППОВЫЕ ОПЕРАЦИИ или нажать кнопку на панели инструментов.

3. Вывести в бланк запроса поле ДАТА ПРОДАЖИ. В строке ГРУППОВЫЕ ОПЕРАЦИИ для выбранного поля указан признак ГРУППИРОВКА.

4. Вывести в бланк запроса поле СУММА ПРОДАЖИ. Для указанного поля в строке ГРУППОВЫЕ ОПЕРАЦИИ необходимо определить функцию суммирования: поставить курсор в строку ГРУППОВЫЕ ОПЕРАЦИИ, нажать кнопку , выбрать функцию SUM.

5. Запустить запрос.

Рисунок 17 Бланк запроса задания 9

6. По умолчанию полю присвоено имя Sum-Сумма продажи. Для переименования: вернуться в режим конструктора запроса, поставить курсор в строку поле колонки Сумма продажи, перед старым именем поля ввести новое имя Итого продано, разделить имена двоеточием — Итого продано:Сумма продажи

7. Сохранить запрос под именем 9_ИТОГ ПРОДАЖ ПО ДАТАМ.

Бланк запроса в режиме конструктора представлен на Рисунок 17.

Задание 1_8. для самостоятельной работы. Вывести информацию о среднем объеме продаж (в стоимостном выражении) по каждому товару.

 

Задание 10. Вывести информацию о максимальной сумме счета по каждому покупателю.

Данная задача реализуется в 2 этапа:

1 этап — определение суммы каждого счета.

2 этап — определение максимальной суммы счета для каждого покупателя.

Алгоритм выполнения задания:

1. Создать новый запрос. Исходные таблицы/запрос — 10_суммы позиций счетов (задание 1-7 для самостоятельной работы).

2. Вывести поля: наименование организации, № счета, сумма по позиции.

3. установить группировку записей по полям наименование организации, № счета.

4. Для поля сумма по позиции в строке ГРУППОВЫЕ ОПЕРАЦИИ необходимо определить функцию суммирования и присвоить имя СУММА СЧЕТА.

5. Сохранить запрос под именем 10-1_суммы счетов покупателей и просмотреть результат выполнения запроса. Бланк запроса представлен на Рисунок 18.

6. Создать новый запрос. Исходный запрос 10-1_суммы счетов покупателей.

7. Вывести поля: наименование организации, СУММА СЧЕТА.

8. установить группировку записей по полю наименование организации.

9. Для поля сумма СЧЕТА в строке ГРУППОВЫЕ ОПЕРАЦИИ необходимо определить функцию Max и присвоить имя максимальная СУММА СЧЕТА.

Рисунок 18 Бланк запроса 10-1_суммы счетов покупателей задания 10

10. Сохранить запрос под именем 10-2_максимальные суммы заказов покупателей. Запустить запрос. Бланк запроса представлен на Рисунок 19.

Внимание! Полей группировки может быть несколько.

Если при построении запроса в качестве исходной структуры используются другие запросы, то при запуске созданного запроса автоматически выполняется все исходные.

Задание 1_9. для самостоятельной работы. Вывести информацию о суммарном объеме заказов (счетов) каждого товара (в единицах измерения) для каждого покупателя.

 

Рисунок 19 Бланк запроса 10-2_максимальные суммы заказов покупателей задания 10

Использование некоторых функций в запросах

Выше уже описывалась технология применения статистических функций в запросах. Далее рассматривается применение следующих функций: Format, month, Nz, Iif, ISNULL

Функция Format

Format — возвращает значение, отформатированное согласно аргументам функции.

Синтаксис функции:

Format(expr [,format[,firstdayofweek[,firstweekofyear]]])

expr — обязательный аргумент, определяет выражение, идентификатор, подлежащий форматированию.

format — определяет формат возвращаемого значения. Необязательный аргумент.

Firstdayofweek — константа, которая определяет первый день недели. Необязательный аргумент.

Firstweekofyear — константа, которая определяет первую неделю года. Необязательный аргумент.

Значения аргумента Формат для форматирования дат представлены в таблице2. Исходные значения 05.01.02, 05.07.02

Таблица 2

Значение аргумента Описание Пример Возвращаемое значение
“mm” Возвращает номер месяца в текстовом формате Format([Счет]![Дата выписки счета];"mm")  
“mmmm” Возвращает наименование месяца в текстовом формате Format([Счет]![Дата выписки счета]; "mmmm") Январь Июль
“d” Возвращает № дня месяца в текстовом формате Format([Счет]![Дата выписки счета];»d»)  
“ddd” Возвращает краткое наименование дня недели в текстовом формате Format([Счет]![Дата выписки счета];"ddd") Вт Пт
“dddd” Возвращает полное наименование дня недели в текстовом формате Format([Счет]![Дата выписки счета];"dddd") Вторник Пятница
“y” Возвращает № дня года в текстовом формате Format([Счет]![Дата выписки счета];"y")  

Функция month

month — определяет № месяца в числовом формате.

Синтаксис функции:

Month(дата)

Пример: Month(([Счет]![Дата выписки счета]).

Функция IsNull

IsNull — возвращает значение ИСТИНА, если аргументу соответствует пустое значение, в противном случае возвращает значение ЛОЖЬ.

Синтаксис функции:

IsNull (аргумент)

В качестве аргумента может быть использованы: идентификатор, выражение, другая функция.

Как правило, используется в качестве встроенной функции.

Функция IIF

IIF— возвращает значение одно их двух значений в зависимости от оценки логического выражения.

Синтаксис функции:

IIf(expr, truepart, falsepart)

Expr — логическое выражение.

Truepart — возвращаемое значение если логическое выражение истинно.

Falsepart — возвращаемое значение если логическое выражение ложно.

В качестве двух последних аргументов могут использоваться идентификаторы, константы, выражения.

Примеры:

IIf([Продажа]![количество продано]>10;"большие продажи";"обычные продажи")

IIf(IsNull([Продажа]![количество продано]);0;[Продажа]![количество продано]) — если для записи значение поля количество продано пусто, то присвоить 0.

Функция Nz

Nz — возвращает существующее значение для записей с непустым значением выражения и установленное значение для записей с пустым значением выражения.

Синтаксис функции:

Nz (expr; valueifnull)

Expr —выражение. В качестве аргумента могут использоваться выражения, идентификаторы.

Valueifnull — устанавливаемое значение для записей с пустым значением поля.

Пример: Nz ([Продажа]![количество продано]; 0) — если для записи значение поля количество продано пусто, то присвоить 0.

 

Задание 11. Вывести информацию о помесячных заказах товаров (в единицах измерения).

Данная задача реализуется в 2 этапа:

1 этап — определение месяца выписки счета (запрос 11-1_месяц выписки счета).

2 этап — определение объема заказов товаров (запрос 11-2_заказано по месяцам).

Алгоритм выполнения задания с использованием функции FORMAT:

1. Создать новый запрос. Исходная таблица — СЧЕТ.

2. Выбрать необходимые поля: № СЧЕТА. В свободной колонке создать новое поле. Поставить курсор в строке ПОЛЕ первой свободной колонки бланка запроса.

3. Нажать кнопку на панели инструментов или нажать правую клавишу мышки и в ниспадающем меню выбрать пункт ПОСТРОИТЬ.

4. В окне 1 (см. Рисунок 14) построителя выражений дважды щелкнуть по папке ФУНКЦИИ и выделить папку встроенные функции.

5. В окне 2 выбрать элемент ВСЕ или ТЕКСТОВЫЕ. (Для папки функции в окне 2 отражена группировка функций.)

6. В окне 3 найти функцию FORMAT и нажать кнопку ВСТАВИТЬ (или двойной щелчок мышки по соответствующей функции). В окне выражения появилась функция: Format («expr»; «fmt»; «firstweekday»; «firstweek»).

7. Ввести аргументы функции. Вместо «expr»: в окне 1 (см. Рисунок 14) построителя выражений дважды щелкнуть по папке ТАБЛИЦЫ и выделить таблицу СЧЕТ, в окне 2 построителя выражений выделить поле ДАТА ВЫПИСКИ СЧЕТА и нажать кнопку ВСТАВИТЬ. Вместо «fmt» ввести — “mm”. Выражение имеет следующий вид: Format([Счет]![Дата выписки счета];"mm").

8. Нажать кнопку ОК окна построителя выражений.

9. В бланке запроса для нового поля поставить флажок ВЫВОД НА ЭКРАН.

10. Ввести имя нового поля — МЕСЯЦ ВЫПИСКИ СЧЕТА.

11. Сохранить запрос под именем 11-1_месяц выписки счета. Запустить запрос. Бланк запроса представлен на Рисунок 20.

Рисунок 20 Бланк запроса 11-1_ месяц выписки счета задания 11

11. Создать новый запрос. Исходные таблицы/запросы: 11-1_месяц выписки счета, СПЕЦИФИКАЦИЯ СЧЕТА.

12. Установить связь по полю № СЧЕТА.

13. Вывести поля код товара, месяц выписки счета, количество по счету.

14. установить группировку записей по полям: код товара, месяц выписки счета.

15. Для поля количество по счету в строке ГРУППОВЫЕ ОПЕРАЦИИ необходимо определить функцию SUM и присвоить имя Заказано.

16. Сохранить запрос под именем 11-2_заказано по месяцам. Запустить запрос. Бланк запроса представлен на Рисунок 21.

Рисунок 21 Бланк запроса 11-2_заказано по месяцам задания 11

Задание 11 возможно реализовать в одном запросе. Бланк запроса 11_заказ по месяцам представлен на Рисунок 22.

Рисунок 22 Бланк запроса 11_заказаз по месяцам задания 11

Задание 1_10. для самостоятельной работы. Вывести информацию о помесячных заказах товаров (в единицах измерения). При реализации задачи использовать функцию MONTH.

Задание 1_11. для самостоятельной работы. Вывести информацию о помесячных продажах товаров (в единицах измерения). Использовать функцию FORMAT. Задание выполнить в один запрос. Новым полям присвоить имена: МЕСЯЦ ПРОДАЖИ, ПРОДАНО. Запрос сохранить под именем 14-1_продажа по месяцам.

 

Задание 12. Провести полный анализ заказов каждого наименования товара, продаваемого фирмой (в соответствии со справочником товаров).

Проведение полного анализа подразумевает вывод заказов всех наименований товаров из справочника. Если данный товар не выписывался по счетам, то заказанное количество соответствует 0.

Данная задача реализуется в 2 этапа:

1 этап — определение объема заказа товаров по счетам. На этом этапе определяется объем заказов тех товаров, на которые выписаны счета.

2 этап — определение объема заказа всех товаров, в том числе не включенных в счета.

Алгоритм выполнения задания с использованием функций IIF, ISNULL:

1. Создать новый запрос. Исходная таблица — СПЕЦИФИКАЦИЯ СЧЕТА.

2. Вывести поля код товара, количество по счету.

3. установить группировку записей по полю: код товара.

4. Для поля количество по счету в строке ГРУППОВЫЕ ОПЕРАЦИИ необходимо определить функцию SUM и присвоить имя Заказ.

5. Сохранить запрос под именем 12-1_заказано по счетам. Запустить запрос.

6. Создать новый запрос. Исходные таблицы/запросы — 12-1_заказано по счетам, ТОВАР.

7. Установить связь по полю код товара.

8. Для реализации задачи сначала необходимо вывести полный список товаров, независимо от присутствия их в спецификациях счетов. Следовательно, требуется изменить параметры объединения исходных структур (см. алгоритм решения задания 7). Установить переключатель на пункте: «Объединение всех записей из таблицы товар и только тех записей из 12-1_заказано по счетам, в которых связанные поля совпадают. Нажать кнопку ОК. Убедиться, что связь изменилась. Направление связи (отражается стрелкой) от таблицы ТОВАР к запросу 12-1_заказано по счетам.

9. запустить запрос. В режиме просмотра запроса в записях для товаров, на которые не выписывались счета, значение поля ЗАКАЗ пустое.

10. Перейти в режим конструктора запроса. Для вывода нулевых значений для не заказанных товаров необходимо создать новое поле, используя ПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ.

11. В окне 1 (см. Рисунок 14) построителя выражений дважды щелкнуть по папке ФУНКЦИИ и выделить папку встроенные функции, В окне 2 выбрать элемент ВСЕ или УПРАВЛЕНИЕ. В окне 3 найти функцию IIF и вставить ее в окно выражения. Функция имеет вид — IIf («expr»; «truepart»; «falsepart»).

12. Ввести аргументы функции. В качестве логического выражения («expr») используется функция ISNULL. Ввести указанную функцию по алгоритму п.11. Аргументом функции ISNULL является поле заказ запроса 12-1_заказано по счетам. Если ISNULL возвращает ИСТИНУ (аргумент «truepart» фукции IIF), то полю присваивается значение 0; в противном случае (поле ЗАКАЗ не пустое — на товар выписывались счета) — идентификатор поля ЗАКАЗ запроса 12-1_заказано по счетам. Выражение имеет следующий вид: IIf(IsNull([12-1_заказано по счетам]![заказ]); 0;[12-1_заказано по счетам]![заказ]).

13. Нажать кнопку ОК окна построителя выражений. В бланке запроса для нового поля поставить флажок ВЫВОД НА ЭКРАН.

14. Ввести имя нового поля — Объем заказов(ЕИ).

15. Сохранить запрос под именем 12-2_объемы заказов товаров (ЕИ).

16. Для проверки полноты вывода информации в таблицу ТОВАР ввести новый товар, не включенный ни в один счет. Запустить запрос. Убедиться в точности проведенного анализа (для вновь введенного товара значение поля ЗАКАЗАНО соответствует 0).

Бланк запроса 12-2_объемы заказов товаров (ЕИ) представлен на Рисунок 23.

Рисунок 23 Бланк запроса 12-2_объемы заказов товаров (ЕИ) задания 12

Алгоритм выполнения задания с использованием функций NZ:

1. Создать новый запрос. Исходные таблицы/запросы — 12-1_заказано по счетам, ТОВАР.

2. Установить связь по полю код товара. Изменить связь аналогично п.8 предыдущего алгоритма (стр.30).

3. Вызвать построитель выражения для нового поля, вставить функцию NZ. Функция имеет вид: Nz («expr»; «valueifnull»).

4. Ввести аргументы функции. В качестве выражения («expr») используется идентификатор поля ЗАКАЗ запроса 12-1_заказано по счетам. Аргументу «valueifnull» (для записей с пустым значением поля ЗАКАЗАНО) присваивается значение 0. Выражение имеет следующий вид: Nz ([12-1_заказано по счетам]![заказ]; 0).

5. Ввести имя нового поля — Объем заказов(ЕИ).

6. Сохранить запрос под именем 12-2(2)_объемы заказов товаров (ЕИ)

7. Запустить запрос. Убедиться в точности проведенного анализа.

Бланк запроса 12-2(2)_объемы заказов товаров (ЕИ) представлен на Рисунок 24.

Рисунок 24 Бланк запроса 12-2(2)_объемы заказов товаров задания 12

Задание 1_12. для самостоятельной работы. Провести полный анализ продаж (в стоимостном выражении) каждого наименования товара, реализуемого фирмой (в соответствии со справочником товаров). Проведение полного анализа подразумевает вывод стоимости продаж всех наименований товаров из справочника. Если данный товар не продавался, то стоимость продаж соответствует 0.

3. Технология решения некоторых задач анализа с использованием запросов на выборку [1]

Задание 13. Проанализировать продажу заказанных товаров (по оплаченным счетам) от начала года до конца заданного месяца. Вывести следующую информацию: № счета, наименование покупателя, наименование товара, оплаченное количество, количество продано, задолженность по продаже.

Общий алгоритм выполнения задания.

Для реализации задания необходимо сконструировать ряд связанных запросов, общая схема решения представлена на Рисунок 25.

 
 

 

 


Рисунок 25 Общая схема реализации задания 13

Алгоритмы построения запросов.

Запрос 13-1_заказ товаров по оплаченным счетам до конца заданного месяца.

1. Создать новый запрос. Исходные таблицы — счет, спецификация счета.

2. Проверить связь по полю № счета.

3. Вывести поля № счета, код товара, количество по счету, пометка об оплате.

4. установить группировку записей по полям: код товара, № счета.

5. Так как в условии задачи указан временной интервал — месяц, необходимо преобразовать значения поля ДАТА ВЫПИСКИ СЧЕТА в месяц выписки счета. Вызвать построитель выражений для нового поля, вставить функцию FORMAT. Ввести аргументы функции: «expr» — ДАТА ВЫПИСКИ СЧЕТА, «fmt» — “mm”. Выражение имеет следующий вид: Format([Счет]![Дата выписки счета];"mm").

6. В задании отсутствует требование помесячного вывода, следовательно, группировка по месяцу выписки счета не нужна. Но для реализации задания необходимы счета до конца заданного месяца, поэтому: для вновь созданного поля в строке ГРУППОВЫЕ ОПЕРАЦИИ установить признак условие, в строке УСЛОВИЯ ОТБОРА нового поля ввести выражение <=[ввести № месяца]. При запуске запроса будет происходить отбор записей, для которых функция Format возвращает номер месяца меньший или равный введенному с клавиатуры значению. Для данного поля снять флажок ВЫВОД НА ЭКРАН.

7. Для поля количество по счету в строке ГРУППОВЫЕ ОПЕРАЦИИ необходимо определить функцию SUM и присвоить имя Заказ.

8. Поле ПОМЕТКА ОБ ОПЛАТЕ может принимать значения ИСТИНА (счет оплачен) или ЛОЖЬ (в противном случае). Для указанного поля в строке ГРУППОВЫЕ ОПЕРАЦИИ установить признак условие. В строке УСЛОВИЯ ОТБОРА вызвать построитель выражений, в окне 1 (см. Рисунок 14) построителя выражений дважды щелкнуть по папке КОНСТАНТЫ и для выбранной папки в окне 3 выбрать константу ИСТИНА. Для данного поля снять флажок ВЫВОД НА ЭКРАН.

9. Сохранить запрос под именем 13-1_заказ товаров по оплаченным счетам до конца заданного месяца.

10. Просмотреть результат выполнения запроса.

Бланк запроса представлен на Рисунок 26.

Рисунок 26 Бланк запроса 13-1_заказ товаров по оплаченным счетам до конца заданного месяца задания 13

Запрос 13-2_продажа товаров по оплаченным счетам до конца заданного месяца.

1. Создать новый запрос. Исходные таблицы — счет, продажа.

2. Проверить связь по полю № счета. Наличие обеспечит выборку только тех записей из таблицы ПРОДАЖА, для которых значения поля № счета совпадают со значениями соответствующего поля таблицы счет.

3. Вывести поля № счета (таблица счет), код товара (таблица продажа), количество по счету (таблица продажа), пометка об оплате (таблица счет).

4. Создать новое поле, содержащее значения месяца продажи (преобразовать поле ДАТА ПРОДАЖИ с использованием команды format), установить ограничения по месяцу (см. п 5, 6 алгоритма запроса 13-1_заказ товаров по оплаченным счетам до конца заданного месяца).

5. Для поля количество продано в строке ГРУППОВЫЕ ОПЕРАЦИИ задать функцию SUM и присвоить имя Продано.

6. Для поля пометка об оплате определить условие отбора — ИСТИНА (см. п. 8 алгоритма запроса 13-1_заказ товаров по оплаченным счетам до конца заданного месяца)

7. Сохранить запрос под именем 13-2_продажа товаров по оплаченным счетам до конца заданного месяца.

8. Просмотреть результат выполнения запроса.

Бланк запроса представлен на Рисунок 27.

Рисунок 27 Бланк запроса 13-2_продажа товаров по оплаченным счетам до конца заданного месяца задания 13

Запрос 13-3_Анализ продажи товаров.

1. Создать новый запрос. Исходные запросы 13-1_заказ товаров по оплаченным счетам до конца заданного месяца, 13-2_продажа товаров по оплаченным счетам до конца заданного месяца.

2. Установить связь по двум полям — № счета, код товара.

3. При конструировании запроса необходимо предусмотреть возможность полного отсутствия продаж заказанных по некоторым счетам товаров. В такой ситуации информация о заказе определенного товара по определенному № счета (конкретная комбинация значений № счета и код товара) присутствует при просмотре запроса 13-1_заказ товаров по оплаченным счетам до конца заданного месяца, но при просмотре запроса 13-2_продажа товаров по оплаченным счетам до конца заданного месяца отсутствует запись о соответствующей продаже. При существующей связи в исходных структурах будут обрабатываться те записи, для которых комбинация значений № счета и код товара совпадают.

Следовательно, требуется изменить параметры объединения исходных структур. Установить переключатель на пункте: «Объединение всех записей из 13-1_заказ товаров по оплаченным счетам до конца заданного месяца и только тех записей из 13-2_продажа товаров по оплаченным счетам до конца заданного месяца, в которых связанные поля совпадают». Параметры объединения изменить для обоих пар связанных полей.

4. Вывести поля № счета, код товара, ЗАКАЗ из запроса 13-1_заказ товаров по оплаченным счетам до конца заданного месяца, поле продано из запроса 13-2_продажа товаров по оплаченным счетам до конца заданного месяца.

Внимание! При изменении параметров объединения в окно конструктора запроса выводятся связанные поля из тех структур, для которых предусмотрен выбор всех записей.

5. Запустить запрос. В режиме просмотра запроса убедиться, что присутствуют записи с пустым значением поля ПРОДАНО (при необходимости ввести в исходные таблицы соответствующие данные). Перейти в режим конструктора запроса.

6. Для определения задолженности по продажам создать новое поле. Задолженность определяется как разность между заказанным и проданным количеством. В решаемой задаче для записей с пустым значением продано, задолженность будет пустой (вычитание константы NULL дает результат NULL). Чтобы не допустить подобной ситуации, необходимо при помощи функции NZ (или IIF, ISNULL) для поля ПРОДАНО задать преобразование возможных пустых значений в 0.

Для нового поля в окне построителя запросов вывести идентификатор поля ЗАКАЗ запроса 13-1_заказ товаров по оплаченным счетам до конца заданного месяца, поставить оператор «-», вывести функцию NZ с соответствующими аргументами. Выражение имеет следующий вид: [13-1ЗАКАЗ ТОВАРОВ ПО ОПЛАЧЕННЫМ СЧЕТАМ ДО КОНЦА ЗАДАННОГО МЕСЯЦА]![заказ]-nz([13-2_ПРОДАЖА ПО ОПЛАЧЕННЫМ СЧЕТАМ ДО КОНЦА ЗАДАННОГО МЕСЯЦА]![Продано];0). Новому полю присвоить имя Задолженность по продаже.

7. Сохранить запрос под именем. 13-3_Анализ продажи товаров. Просмотреть результат выполнения запроса.

Внимание! Если при запуске запроса дважды запрашивается месяц конца периода, то проверить параметр [ввести № месяца] в запросах 13-1_заказ товаров по оплаченным счетам до конца заданного месяца, 13-2_продажа товаров по оплаченным счетам до конца заданного месяца. Написание параметра должно точно совпадать.

Бланк запроса представлен на Рисунок 28.

Рисунок 28 Бланк запроса 13-3_Анализ продажи товаров задания 13

Запрос 13-4_Итоговый анализ продаж товаров.

1. Создать новый запрос. Исходные таблицы/запросы: 13-3_Анализ продажи товаров, Товар, Счет, Покупатель.

2. Установить необходимые связи.

3. Вывести поля: № счета (запрос 13-3_Анализ продажи товаров), наименование организации (таблица покупатель), наименование товара (таблица товар), заказ (запрос 13-3_Анализ продажи товаров), продано (запрос 13-3_Анализ продажи товаров), задолженность по продаже (запрос 13-3_Анализ продажи товаров).

4. Сохранить запрос под именем 13-4_Итоговый анализ продаж товаров. Запустить запрос.

Результат реализации задания 13 представлен в Таблица 3.

 

Таблица 3

13-4_ИТОГОВЫЙ АНАЛИЗ ПРОДАЖ ТОВАРОВ
Номер счета Наименование организации Наименование товара заказ Продано Задолженность по продаже
  АОЗТ "Луч" Шампунь "Ворожея"      
  АОЗТ "Луч" Шампунь "Резонанс"      
  ТОО "Искра" Бальзам "Блеск"      
  ТОО "Искра" Мыло "Детское"      
  ТОО "Искра" Шампунь "Золушка"      
  ТОО "Искра" Шампунь "Резонанс"      
  ТОО "Искра" Мыло "Детское"      

 

Задание 14. Проанализировать объемы продаж товаров помесячно нарастающим итогом. Вывести следующую информацию: наименование товара, № месяца, объем продаж от начала года.

Нарастающий итог (сумма с накоплением) по месяцам— расчет суммы от начала года до конца указанного месяца по каждой позиции.

Для создания запроса потребуется вспомогательная таблица, где перечислены номера всех существующих месяцев. Структура таблицы представлена на Рисунок 29.

Рисунок 29 Структура таблицы Месяц

Содержание записей таблицы МЕСЯЦ представлено в Таблица 4.

Таблица 4

месяц
№ месяца наименование
  январь
  февраль
  март
  апрель
  май
  июнь
  июль
  август
  сентябрь
  октябрь
  ноябрь
  декабрь

Общая схема решения представлена на Рисунок 30.

 
 

 

 


Рисунок 30 Общая схема реализации задания 14

Алгоритм выполнения задания:

Запрос, выводящий информацию о помесячных продажах, был создан в задании 1-11 для самостоятельной работы. Ему было присвоено имя 14-1_продажа по месяцам.

Запрос 14-2_продажа нарастающим итогом.

Общая схема реализации запроса представлена на Рисунок 31.

 


Рисунок 31 Схема реализации запроса Запрос 14-2_продажа нарастающим итогом

1. Создать новый запрос. Исходные таблицы/запросы: 14-1_продажа по месяцам, МЕСЯц.

Внимание! Связь между исходными структурами не устанавливать.

2. Вывести поля Код товара (из запроса 14-1_продажа по месяцам, МЕСЯц), № месяца (из таблицы МЕСЯЦ), месяц продажи (из запроса 14-1_продажа по месяцам), ПРОДАНО (из запроса 14-1_продажа по месяцам).

3. Установить группировку по полям Код товара, № месяца.

4. Для поля МЕСЯЦ ПРОДАЖИ в строке УСЛОВИЯ ОТБОРА вызвать построитель выражений и создать следующее условие: <=[месяц]![№ месяца]. В строке ГРУППОВЫЕ ОПЕРАЦИИ данного поля установить признак условие.

5. Для поля продано в строке ГРУППОВЫЕ ОПЕРАЦИИ задать функцию SUM и присвоить имя Продажа нарастающим итогом.

6. Для полей КОД ТОВАРА, № МЕСЯЦА в строке сортировка установить признак ПО ВОЗРАСТАНИЮ.

7. Сохранить запрос под именем 14-2_продажа нарастающим итогом. Просмотреть результат выполнения запроса.

Бланк запроса представлен на рРисунок 32.

Рисунок 32 Бланк запроса 14-2_продажа нарастающим итогом задания 14

Запрос 14-3_ПРОДАЖА НАРАСТАЮЩИМ ИТОГОМ (ИТОГОВЫЙ).

1. Создать новый запрос. Исходные таблицы/запросы: 14-2_продажа нарастающим итогом, ТОВАР.

2. Проверить наличие связи по полю код товара.

3. Вывести поля: НАИМЕНОВАНИЕ ТОВАРА, № МЕСЯЦА, Продажа нарастающим итогом.

4. Сохранить запрос под именем 14-3_ПРОДАЖА НАРАСТАЮЩИМ ИТОГОМ (ИТОГОВЫЙ). Просмотреть результат выполнения запроса.

Задание 1_13 для самостоятельной работы. Проанализировать выполнение заказов покупателей от начала года до конца заданного месяца. Вывести следующую информацию: наименование организации, стоимость заказанного товара, стоимость проданного товара, стоимость задолженности.

Задание 1_14 для самостоятельной работы. Проанализировать выполнение заказов по продаже товаров за весь период. Вывести следующую информацию: наименование организации, наименование товара, стоимость заказов товара, стоимость продаж товара, стоимость задолженности.

Задание 1_15 для самостоятельной работы. Проанализировать объемы заказа товаров помесячно нарастающим итогом. Вывести следующую информацию: наименование товара, № месяца, объем заказов от начала года (в единицах измерения), стоимость заказов от начала года.

Задание 1_16 для самостоятельной работы. Сделать полный анализ заказов и продаж заданного товара от начала года до конца заданного месяца. Вывести следующую информацию: наименование товара, объем заказов (в единицах измерения), стоимость заказов, объем продаж (в единицах измерения), стоимость продаж. При выполнении задания обратить внимание на допустимость продаж товаров без предварительного заказа (в таблице продажа пустое значение поля № счета).

 







Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.