Тема: Создание запросов с вычисляемыми полями и с использованием встроенных функций

Лабораторная работа № 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: