powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Цена на дату
7 сообщений из 7, страница 1 из 1
Цена на дату
    #32761930
Привет.
Избалованный 1С, захотел сделать что-то вроде периодических реквизитов в MS Access. Задача такая - есть таблица цен:

ДатаКод_ТовараКод_ПрайсаЗначение_Цены1.01.20041110.001.02.20041111.001.03.20041112.001.01.20042110.001.02.20042111.001.03.20042112.00

Хотелось бы получить список цен на все товары на определенную дату, которую я бы мог задавать как параметр запроса. Если на эту дату нет значения в таблице, то нужно брать ближайшую дату до затребованной.

Но увы, все мои потуги написать такой запрос пока безуспешны, может подскажите, в каком направлении рыть. Сейчас обхожусь процедурой на VB.
...
Рейтинг: 0 / 0
Цена на дату
    #32761958
Фотография vma_mnt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй

Код: plaintext
1.
SELECT top  1  Значение_Цены FROM ТаблицаЦен where (Код_Товара =  1 ) and 
(Код_Прайса =  1 ) and (Дата <= ЗапрашиваемаяДата) order by Дата desc
...
Рейтинг: 0 / 0
Цена на дату
    #32762054
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо увы, все мои потуги написать такой запрос пока безуспешны, может подскажите, в каком направлении рыть

В направлении определения ближайжей даты, не превышающей заданную,
группированной по коду товара. (набор1)
Далее необходимо соединить левым соединением справочник товаров с получившимся набором по коду товара и продолжить соединением набора1 с таблицей цен по коду товара, и дате.

(с выражением лица)
...
Рейтинг: 0 / 0
Цена на дату
    #32762102
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
select  * 
from MyTable t
where t.[Дата]=(select top  1  [Дата] from MyTable t1 
                        where t1.Код_Товара= t.Код_Товара  and 
                              t1.[Дата] <=mydate
                        order by [Дата]  desc)
...
Рейтинг: 0 / 0
Цена на дату
    #32762117
VIG, не получается. При запуске Access говорит, что "At most one record can be returned by this busquery"

Victosha, насколько я вас понял, примерно что-то такое я пробовал, и мне удавалось получить цену только на один товар. Я правда уже удалил этот запрос, но это было как-то похоже на запрос vma_mnt , который тоже мне не подходит. Ваш вариант - это нужно создать 2 отдельных запроса, один из которых входит в другой?
...
Рейтинг: 0 / 0
Цена на дату
    #32762123
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах,да -это же Access :)
тогда так
Код: plaintext
1.
2.
3.
4.
select  * 
from MyTable as t
where t.[Дата]=(select max( [Дата]) from MyTable as t1 
                        where t1.Код_Товара= t.Код_Товара  and 
                              t1.[Дата] <=mydate)
...
Рейтинг: 0 / 0
Цена на дату
    #32762162
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIG Ах,да -это же Access :)

что про акс забывать стал?

не хорошо....
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Цена на дату
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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