Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизПомогите с запросом, пожалуйста. Найти похожие ветки
← →
chtr © (2004-03-15 07:10) [0]Надо выбрать из повторяющихся номенклатур цену по максимальной дате. Т.е.
из
id | code | date | price
------------------------
1 | 12 | 1/01 | 250
2 | 13 | 1/01 | 800
3 | 12 | 1/02 | 253
4 | 13 | 1/02 | 795
надо получить
id | code | date | price
------------------------
3 | 12 | 1/02 | 253
4 | 13 | 1/02 | 795
Мне кажется кто-то уже такое должен был делать. Просто катастрофически нехватает времени, помогите пожалуйста.
Спасибо.
← →
YurikGl © (2004-03-15 08:06) [1]where id>2 ?
← →
ЮЮ © (2004-03-15 08:39) [2]SELECT tbl.*
FROM
(SELECT Code, MAX(date) MaxDate FROM Table GROUP By Code) gr
LEFT JOIN Table tbl ON (gr.Code = tbl.CODE) AND (gr.MaxDate = tbl.Date)
если же предположить, что большему ID большая дата (т.е. данные вводятся последовательно), то можно
SELECT tbl.*
FROM
(SELECT Code, MAX(ID) MaxId FROM Table GROUP By Code) gr
LEFT JOIN Table tbl ON (gr.MaxId = tbl.Id)
← →
CHTR © (2004-03-15 09:04) [3]2 ЮЮ , спасибо огромное, сэкономил кучу времени. У меня так сходу пока не получается. Первый вариант подойдет.
← →
Johnmen © (2004-03-15 11:49) [4]Думается, что так будет быстрее:
SELECT *
FROM Table T1
WHERE T1.date=(SELECT MAX(T2.date)
FROM Table T2
WHERE T1.code=T2.code)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c