Тема: Создание запросов с вычисляемыми полями и с использованием встроенных функций
Лабораторная работа № 5
1) Формулировка запроса: По Таблице 1 для каждого товара определить «возраст» в полных годах, полных месяцах и днях на дату поступления товара. Результат вывести в виде текста: «Название товара» имеет возраст «Количество лет» лет «Количество месяцев» месяцев и «Количество дней» дней.
Запрос: | |||||
Поле | код_товара | наименование_товара | дата изготовления | дата поступления | Возраст: Year(Date())-Year([товары]![дата изготовления]) & "лет" & Month(Date())-Month([товары]![дата изготовления]) & "мес" & Day(Date())-Day([товары]![дата изготовления]) & "дней" |
Имя таблицы | товары | товары | товары | товары | |
Условие отбора | |||||
или: | |||||
Вычисляемые поля: Возраст
SQL:SELECT товары.код_товара, товары.наименование_товара, товары.[дата изготовления], товары.[дата поступления], Year(Date())-Year([товары]![дата изготовления]) & "лет" & Month(Date())-Month([товары]![дата изготовления]) & "мес" & Day(Date())-Day([товары]![дата изготовления]) & "дней" AS Возраст
FROM товары;
3) Формулировка запроса: По таблице 3 определить стоимость заказанного товара и остаточную стоимость с учетом предоплаты в рублях и в валюте. Курс валюты вводим с клавиатуры.
Запрос: | |||||
Поле | код_товара | наименование_товара | дата изготовления | Название товара: товары!наименование_товара & " произведен " & Format(товары![дата изготовления];"d\ mmmm\ yyyy") & " - " & Format(товары![дата изготовления];"dddd") | |
Имя таблицы | товары | товары | товары | ||
Условие отбора | |||||
или: | |||||
Вычисляемые поля: Название товара
SQL:SELECT товары.код_товара, товары.наименование_товара, товары.[дата изготовления], товары!наименование_товара & " произведен " & Format(товары![дата изготовления],"dmmmmyyyy") & " - " & Format(товары![дата изготовления],"dddd") AS [Название товара]
FROM товары;
Запрос: | ||||||||
Поле | код_товара | наименование_товара | дата изготовления | срок годности (в мес) | цена за еденицу (руб) | Возраст в днях: Date()-товары![дата изготовления] | срок годности в днях: товары![срок годности (в мес)]*30 | Уценка: IIf([Возраст в днях]>[срок годности в днях];"списать";IIf(([срок годности в днях]-[Возраст в днях])>=0 And ([срок годности в днях]-[Возраст в днях])<=5;0,5*[товары]![цена за еденицу (руб)];0)) |
Имя таблицы | товары | товары | товары | товары | товары | |||
Условие отбора | ||||||||
или: | ||||||||
4) Формулировка запроса: Для товаров, у которых на текущую дату истек срок годности, провести уценку: если до срока реализации осталось меньше 5 дней – 50% скидки на цену товара, если срок годности истек – выдать сообщение «Списать».
Вычисляемые поля: Возраст в днях ,срок годности в днях, Уценка
SQL:SELECT товары.код_товара, товары.наименование_товара, товары.[дата изготовления], товары.[срок годности (в мес)], товары.[цена за еденицу (руб)], Date()-товары![дата изготовления] AS [Возраст в днях], товары![срок годности (в мес)]*30 AS [срок годности в днях], IIf([Возраст в днях]>[срок годности в днях],"списать",IIf(([срок годности в днях]-[Возраст в днях])>=0 And ([срок годности в днях]-[Возраст в днях])<=5,0.5*[товары]![цена за еденицу (руб)],0)) AS Уценка
FROM товары INNERJOIN (покупатели INNERJOIN Заказы ON покупатели.код_покупателя = Заказы.[код покупателя]) ON товары.код_товара = Заказы.[код товара];
5) Формулировка запроса: Для заказов без предоплаты сделать Надбавку к ценетовара в размере 5%, для товаров с предоплатой – скидка 5%. Вычислить Конечную стоимость заказа с учетом Скидки и Надбавки в рублях, в $ и в евро. Курсы валют вводим с клавиатуры.
Запрос: | |||||||||
Поле | код_товара | наименование_товара | цена за еденицу (руб) | количество товара | сумма предоплаты | Конечная стоимость заказа(в руб): IIf(Заказы![сумма предоплаты]=0;[цена за еденицу (руб)]*0,5+[цена за еденицу (руб)];[цена за еденицу (руб)]*0,5) | Конечная стоимость заказа(в$): [Конечная стоимость заказа(в руб)]/[введи курс $] | Конечная стоимость заказа(в Euro): [Конечная стоимость заказа(в руб)]/[введи курс Euro] | |
Имя таблицы | товары | товары | товары | Заказы | Заказы | ||||
Условие отбора | |||||||||
или: | |||||||||
Вычисляемые поля: Конечная стоимость заказа(в руб), Конечная стоимость заказа(в$) .Конечная стоимость заказа(в Euro)
SQL:SELECT товары.код_товара, товары.наименование_товара, товары.[цена за еденицу (руб)], Заказы.[количество товара], Заказы.[сумма предоплаты], IIf(Заказы![сумма предоплаты]=0,[цена за еденицу (руб)]*0.5+[цена за еденицу (руб)],[цена за еденицу (руб)]*0.5) AS [Конечная стоимость заказа(в руб)], [Конечная стоимость заказа(в руб)]/[введи курс $] AS [Конечная стоимость заказа(в$)], [Конечная стоимость заказа(в руб)]/[введи курс Euro] AS [Конечная стоимость заказа(в Euro)]
FROM товары INNERJOIN (покупатели INNERJOIN Заказы ON покупатели.код_покупателя = Заказы.[код покупателя]) ON товары.код_товара = Заказы.[код товара];
2) Формулировка запроса:
Запрос: | |||||
Поле | |||||
Имя таблицы | |||||
Условие отбора | |||||
или: | |||||
Вычисляемые поля:
SQL: