Консультация № 144985
25.09.2008, 11:49
0.00 руб.
25.09.2008, 15:22
0 7 2
Есть две таблицы
Items: id, barcode,name.....
ItemPrice: idItem, price, changeDate (дата изменения цены)
как из этой таблицы вытащить последнее значение price (по дате)?


Приложение:
est dve tablizi:
Items: id, barcode,name.....
ItemPrice: idItem, price, changeDate (data ismeneniya zeni)
kak iz etoi tablizi vitashit poslednii price (po date)?

Обсуждение

Неизвестный
25.09.2008, 12:14
общий
это ответ
Здравствуй, Ladami!
попробуй так
select max(changeDate) from ItemPrice
Неизвестный
25.09.2008, 12:17
общий
это ответ
Здравствуйте, Ladami!

что-то типа такого:
select i.id,i.barcode,i.name,p.price from items i, price p, price p2 where i.id=p.iditem and i.id=p2.iditem group by i.id,i.barcode,i.name,p.price having max(p2.changedate)=p.changedate

но возможны вариации в зависимости от СУБД
Неизвестный
25.09.2008, 12:17
общий
СУБД какая?
Неизвестный
25.09.2008, 12:22
общий
SQL-server interprise manager
Неизвестный
25.09.2008, 14:04
общий
ne rabotaet
select
i.RecId,
p.Price
from Items i, PriceList p, PriceList p2
where i.RecId =p.ItemId and i.RecId = p2.ItemId and p.kind='Items'
group by i.RecId, p.Price having max(p2.FromDate)=p.FromDate


oshibka: Column 'p.FromDate' is invalid in the HAVING clause because it is not contained in either an aggregate function or the GROUP BY clause.
Неизвестный
25.09.2008, 14:49
общий
p.fromdate допишите в group by:

select
i.RecId,
p.Price
from Items i, PriceList p, PriceList p2
where i.RecId =p.ItemId and i.RecId = p2.ItemId and p.kind='Items'
group by i.RecId, p.Price,p.FromDate
having max(p2.FromDate)=p.FromDate
Неизвестный
25.09.2008, 15:54
общий
yy
RABOTAET!
SPASIBO
Форма ответа