|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.02.2015, 18:41 | #1 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 127
|
Как вытянуть последние записи (по дате) уникальные по столбцу
Добрый день!
PRODUCT_ID - ID товара PARENT_ID - ID группы товара (детские коляски, детские игрушки и т.д.) PRICE_DATE - дата добавления записи (за 1 день к одному и тому же товару 2-х записей быть не может) PRICE - цена товара на PRICE_DATE число Подскажите, как из такой таблицы (см. картинку) получить последние по дате записи товары из группы 1. По факту нужны строки (все поля) ID = 8 и 13 (это последние цены товаров группы 1)
0_o
|
13.02.2015, 18:42 | #2 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 127
|
Забыл добавить - MS Access 2002-2003
Работаю с базой в программе на Delphi через ADO Но мне хотя бы в аккесе такой запрос построить
0_o
Последний раз редактировалось MyIE; 13.02.2015 в 18:43. Причина: дополнил |
13.02.2015, 18:46 | #3 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
см. group by + max()
|
13.02.2015, 18:54 | #4 | |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 127
|
Умоляю, напишите, если знаете как построить запрос.
Сам я знаю как работает group by, да вот только в аккесс он должен быть на все выбираемые поля, а соответственно группировки не получается, т.к. если группировка по всем полям, то он должен возвращать все. Гуглю со среды, ничего так и не насоображал. Сюда решил написать уже от безисходностти. Прикол еще в том, что в вебе такой запрос я без проблем составил, а вот у Аккесс какие то свою тараканы в голове. Такой запрос Код:
Цитата:
Вот так: Код:
Добавлю, что возможен еще и вот такой вариант И тогда нужно получить записи ID = 8 и 19
0_o
Последний раз редактировалось Stilet; 13.02.2015 в 23:41. |
|
13.02.2015, 22:30 | #5 | |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
Цитата:
|
|
14.02.2015, 01:54 | #6 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 127
|
на веб-сайте
0_o
|
14.02.2015, 10:16 | #7 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
откуда на веб-сайте sql?
|
14.02.2015, 10:42 | #8 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 127
|
Вернемся к теме вопроса, пожалуйста.
Подскажите, плиз, решение задачи, а то всю голову уже сломал.
0_o
|
14.02.2015, 12:01 | #9 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
select * from table2 as t2
inner join (select PRODUCT_ID, max(PRICE_DATE) as PRICE_DATE from table2 where PARENT_ID=1 group by PRODUCT_ID) as t on t.PRODUCT_ID=t2.PRODUCT_ID and t.PRICE_DATE=t2.PRICE_DATE where PARENT_ID=1 сойдет? Последний раз редактировалось lomastr_; 14.02.2015 в 12:08. |
14.02.2015, 14:36 | #10 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 127
|
Огромное спасибо! Могу я вам где то репутацию кликнуть?)
Вообще никогда не приходилось делать join таблицы в саму себя В вебе такое прокатывает без проблем (субд mysql)
0_o
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как выбрать поле таблиции по предпоследней дате записи? | Женя32 | БД в Delphi | 9 | 11.11.2013 22:42 |
Как обновить последние записи за определенный срок не обновляя не законченные записи? | SotGEGDS | SQL, базы данных | 3 | 11.06.2013 14:39 |
MySQL уникальные записи | Abuhamed | PHP | 3 | 15.12.2011 14:11 |
Уникальные записи из БД | Abuhamed | PHP | 5 | 01.07.2011 01:55 |
Запрос на последние записи | SERG1980 | БД в Delphi | 5 | 17.11.2010 17:02 |