powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на возврат цен на самую последнюю дату
12 сообщений из 12, страница 1 из 1
Запрос на возврат цен на самую последнюю дату
    #32256245
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, помогите! Есть запрос "Цена_на_товар2", в котором есть 4 поля: Контрагент, Товар, Дата и Цена. Необходимо вытащить Цену по каждому контрагенту на каждый товар, в день поставки, который был самым последним. Вот у меня запрос, но он мне тащит все даты, а не только последние. :((
Код: plaintext
1.
2.
3.
4.
5.
SELECT Цена_на_товар2.[Краткое наименование] as Контрагент, Цена_на_товар2.[Краткое описание] as Товар, Max(Цена_на_товар2.Дата) as Дата, Цена_на_товар2.Цена as Цена
FROM Цена_на_товар2
GROUP BY Цена_на_товар2.[Краткое наименование], Цена_на_товар2.[Краткое описание], Цена_на_товар2.Цена, Цена_на_товар2.Дата, Цена_на_товар2.[Краткое описание], Цена_на_товар2.[Краткое наименование]
HAVING (((Цена_на_товар2.Цена)> 0 ))
ORDER BY Max(Цена_на_товар2.Дата) DESC , Цена_на_товар2.[Краткое описание], Цена_на_товар2.[Краткое наименование];

Как мне сделать так, чтобы запрос тянул цену только на самую последнюю дату по данному контрагенту и товару????
---------------
Пример:
ООО "Степа" Бигуди 01.01.03 250
ООО "Степа" Машины 12.01.03 350
ООО "Степа" Бигуди 13.01.03 300
ООО "Степа" Машины 11.01.03 380
ООО "Гриша" Бигуди 08.01.03 220
Необходимо, чтобы запрос вернул 3 строки:
ООО "Степа" Бигуди 13.01.03 300
ООО "Степа" Машины 12.01.03 350
ООО "Гриша" Бигуди 08.01.03 220
---------------
-
-
Ну и еще один вопрос. Можно ли сделать так, чтобы возвращались не по одной такой записи, а скажем по 5 самых последних записей, если они существуют, естественно???
P.S. Извините что к Вам обращаемся, сами мы не местные.
...
Рейтинг: 0 / 0
Запрос на возврат цен на самую последнюю дату
    #32256288
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Саныч, Нуф, Лох, Incold, Geo......... Челы, челы, хелп, хелп!!!!!!!!!!!
...
Рейтинг: 0 / 0
Запрос на возврат цен на самую последнюю дату
    #32256331
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Было это в этом форуме, и не один раз. Идея следующая: строим промежуточный запрос (group by по контрагенту и товару, Max от даты), а потом присоединяем его, джойнясь через контрагента, товар и дату.
...
Рейтинг: 0 / 0
Запрос на возврат цен на самую последнюю дату
    #32256343
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мля, Саныч, проблема в том, что "Цена_на_товар2" и есть тот самый промежуточный запрос. :( Может, конечно я чего не так понял и перемудрил, но по моему все сделал правильно.
а потом присоединяем его, джойнясь через контрагента, товар и дату.
Куда его присоединяем-то??????
...
Рейтинг: 0 / 0
Запрос на возврат цен на самую последнюю дату
    #32256344
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри, кажись понял!
Сначала опубликовал, а потом подумал. Т.е. Сначала по Контрагент, Товару и МАКСДате строим запрос с группировкой, а потом уже делаем нужный запрос с Контрагентом, Товаром, Датой и Ценой. Райт??
Пошел домой пробовать. Если не получится, то ждите вопросов.
...
Рейтинг: 0 / 0
Запрос на возврат цен на самую последнюю дату
    #32256363
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант от Саныча
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Select t2.Контрагент,t2.Товар,t2.Дата,t2.Цена
FROM
(SELECT Цена_на_товар2.[Краткое наименование] as Контрагент, Цена_на_товар2.[Краткое описание] as Товар, Max(Цена_на_товар2.Дата) as Дата, 
FROM Цена_на_товар2 
GROUP BY Цена_на_товар2.[Краткое наименование]as , Цена_на_товар2.[Краткое описание]
HAVING (((Цена_на_товар2.Цена)> 0 ))
) as t1
inner join;
(SELECT Цена_на_товар2.[Краткое наименование] as Контрагент, Цена_на_товар2.[Краткое описание] as Товар, Цена_на_товар2.Дата , Цена_на_товар2.Цена 
FROM Цена_на_товар2
) as t2
on t1.Контрагент=t2.Контрагент and t1.Товар=t2.Товар and t1.Дата=t2.Дата;
...
Рейтинг: 0 / 0
Запрос на возврат цен на самую последнюю дату
    #32256377
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 TRoUbLEs: Да, все верно.

2 (c)VIG: Только все эти (...) AS t1 в Аксессе работают с ограниченной ответственностью и пишутся так: [...] . t1
...
Рейтинг: 0 / 0
Запрос на возврат цен на самую последнюю дату
    #32256390
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только все эти (...) AS t1 в Аксессе работают с ограниченной ответственностью и пишутся так: [...]. t1
Может быть.Но у меня в ХР и так работает.
...
Рейтинг: 0 / 0
Запрос на возврат цен на самую последнюю дату
    #32256449
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2TRoUbLEs\r
Я, верно, скоро умным стану - меня уже второй раз упоминают вкупе с Великими :))\r
Смех смехом, а.. Брр. К чему эт я?\r
Так вот, была у меня недавно проблемка с такими запросами, авось пригодится:\r
/topic/45653\r
Вопрос не совсем в тему, но в описанной здесь проблеме почти половину времени занимал именно запрос, считающий цену товара по партии на указанную дату.\r
Я взял на вооружение способ, предложенный assa, потихоньку его делаю, глядишь, время будет, и закончу - но способ, имхо, зело удобный.
...
Рейтинг: 0 / 0
Запрос на возврат цен на самую последнюю дату
    #32256450
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и еще один вопрос. Можно ли сделать так, чтобы возвращались не по одной такой записи, а скажем по 5 самых последних записей, если они существуют, естественно???
Sorry,сразу не увидел .Отвечаю-можно.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT t.Контрагент, t.Товар, t.Дата,t.Цена
FROM Цена_на_товар2  t
group by t.Контрагент, t.Товар, t.Дата,t.Цена
having  (select sum( 1 ) 
           from Цена_на_товар2 t3 
           where t3.Контрагент=t.Контрагент
           and t3.Товар=t.Товар 
           and t3.Дата=t.Дата
           and t3.Цена<=t.Цена)<= 5 ;
...
Рейтинг: 0 / 0
Запрос на возврат цен на самую последнюю дату
    #32256455
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз прочитал этот топик, и еще раз офигел от ЛП...\r
Эво как...\r
/topic/43028
...
Рейтинг: 0 / 0
Запрос на возврат цен на самую последнюю дату
    #32256622
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ! Спасибо за участие!
Вчера не добрался до и-нета. :( Эти 3.14доры с телефонного узла отключили мне телефон домашний за неуплату, так что я вчера обломался. Сегодня все проплатил и на выходных попробую что-нибудь с этим сделать. Результат опишу, если не забуду.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на возврат цен на самую последнюю дату
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]