Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 комплексный запрос  [new]
vic91
Member

Откуда:
Сообщений: 5
Доброго времени суток!
мне нужно составить отчет в котором выводится минимальный заказ за каждую дату(дата из таблицы orders). заказ рассчитывается как сумма стоимостей продуктов, входящих в заказ, в свою очередь стоимость продукта вычисляется как цена за единицу*количество минус дисконт.(sum(unitprice*quantity-discount/100)) (из таблицы order details)

Вывела только заказы за каждую дату, а как минимаьный выбрать не знаю

select orders.orderid,orderdate,(sum(unitprice*quantity-discount/100))as orderprice
from orders, [order details]
where ([order details].orderid=orders.orderid)
group by orders.orderid, orderdate

К сообщению приложен файл (таблицы.docx - 123Kb) cкачать
18 фев 13, 18:26    [13944722]     Ответить | Цитировать Сообщить модератору
 Re: комплексный запрос  [new]
vic91
Member

Откуда:
Сообщений: 5


К сообщению приложен файл (tab1.docx - 139Kb) cкачать
18 фев 13, 18:30    [13944743]     Ответить | Цитировать Сообщить модератору
 Re: комплексный запрос  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Рекомендую поговорить с Вашим сотрудником, который проектировал БД,
может, "итого" по заказу лучше хранить а не считать постоянно на лету?
18 фев 13, 18:33    [13944754]     Ответить | Цитировать Сообщить модератору
 Re: комплексный запрос  [new]
Маслов Андрей
Member

Откуда: Москва
Сообщений: 1164
vic91,

всё писать не интересно, думайте
но в качестве бонуса код, который считает сумму по каждому заказа с учётом скидки
select t1.OrderID, sum(UnitPrice * Quantity * (1 -Discount) ) 
  from Orders t1 
	inner join OrderDetails t2 
	   on  t1.OrderID = t2.OrderID
  group by t1.OrderID
18 фев 13, 18:38    [13944767]     Ответить | Цитировать Сообщить модератору
 Re: комплексный запрос  [new]
Маслов Андрей
Member

Откуда: Москва
Сообщений: 1164
ну и так, если по быстрому
select t3.OrderDate, min(ds.OrderSum)
  from Orders t3
     inner join ( 
		select t1.OrderID, sum(UnitPrice * Quantity * (1 -Discount) ) as OrderSum 
		  from Orders t1 
			inner join OrderDetails t2 
			   on  t1.OrderID = t2.OrderID
		  group by t1.OrderID ) ds
		on ds.OrderID = t3.OrderID
  group by t3.OrderDate
18 фев 13, 18:42    [13944784]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить