комплексный запрос

vic91
Дата: 18.02.2013 18:26:28
Доброго времени суток!
мне нужно составить отчет в котором выводится минимальный заказ за каждую дату(дата из таблицы 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
vic91
Дата: 18.02.2013 18:30:13
Паганель
Дата: 18.02.2013 18:33:22
Рекомендую поговорить с Вашим сотрудником, который проектировал БД,
может, "итого" по заказу лучше хранить а не считать постоянно на лету?
Маслов Андрей
Дата: 18.02.2013 18:38:07
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.02.2013 18:42:40
ну и так, если по быстрому
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