powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на временной интервал
6 сообщений из 6, страница 1 из 1
Запрос на временной интервал
    #39776619
prosims
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, уважаемые эксперты,

есть две таблицы. Одна с ценами (Prices), другая с заказами (Orders). В таблице Prices товары с закупочные ценами, цены время от времени меняются и вносятся новой строкой с датой изменения.

Ломаю голову, как сделать запрос, чтобы перенести цены в таблицу Orders, но сделать это так, чтобы цена соостветствовала времени когда был сделан заказ.

Пример: Цена на Product1 изменилась 15.02.2016 и далее не изменялась до 18.05.2018. Нужно проставить эту цену в таблицу заказов во все строки где есть Product1 в данном интервале времени. И так далее со всеми продуктами.

Не знаю, как можно это сделать, бьюсь второй день, помогите пожалуйста. Файл пример прилагаю.

Заранее благодарю.
...
Рейтинг: 0 / 0
Запрос на временной интервал
    #39776649
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос 1, на базе обеих таблиц: для каждой позиции каждого заказа отобрать все цены, изменившиеся до заказа.
Запрос 2, на базе запроса 1: для каждой позиции каждого заказа получить максимальную из дат.
Запрос 3, на базе обеих таблиц и запроса 2: для каждой позиции каждого заказа отобрать цену, дата которой равна дате из запроса.
...
Рейтинг: 0 / 0
Запрос на временной интервал
    #39776660
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например как-то так:
...
Рейтинг: 0 / 0
Запрос на временной интервал
    #39776665
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prosimsкак сделать запрос, чтобы перенести цены в таблицу Orders,Что значит "перенести" ?
У тебя же в Ордерз нет поля для цены ...

Код: vbnet
1.
2.
3.
SELECT Orders.LNr, Orders.OrderNr, Orders.ArtikelNr, Orders.System_updated,
(select top 1 Ek_preis_eur from Prices where Prices.ArtikelNr=Orders.ArtikelNr and Orders.System_updated>Prices.System_updated order by Prices.System_updated desc) as price
FROM Orders;
...
Рейтинг: 0 / 0
Запрос на временной интервал
    #39776668
prosims
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем огромное за помощь. Благодарю за идеи и советы. Пока пытался разобраться, подсказали на другом форуме, вариант с одним простым запросом на подчинение.

Публикую для примера, может кому пригодится:

SELECT Orders.LNr, Orders.ArtikelNr, Orders.System_updated,
(SELECT TOP 1 Ek_preis_eur FROM Prices
WHERE ArtikelNr=Orders.ArtikelNr AND System_updated<=Orders.System_updated
ORDER BY System_updated DESC) AS Pr
FROM Orders;
...
Рейтинг: 0 / 0
Запрос на временной интервал
    #39776811
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prosims, решение изначально неправильное: в таблице prices - текущие цены, в таблице Orders заказы с ценами на тот момент.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на временной интервал
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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