Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на временной интервал / 6 сообщений из 6, страница 1 из 1
20.02.2019, 10:58
    #39776619
prosims
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на временной интервал
Добрый день, уважаемые эксперты,

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

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

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

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

Заранее благодарю.
...
Рейтинг: 0 / 0
20.02.2019, 11:43
    #39776649
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на временной интервал
Запрос 1, на базе обеих таблиц: для каждой позиции каждого заказа отобрать все цены, изменившиеся до заказа.
Запрос 2, на базе запроса 1: для каждой позиции каждого заказа получить максимальную из дат.
Запрос 3, на базе обеих таблиц и запроса 2: для каждой позиции каждого заказа отобрать цену, дата которой равна дате из запроса.
...
Рейтинг: 0 / 0
20.02.2019, 12:00
    #39776660
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на временной интервал
например как-то так:
...
Рейтинг: 0 / 0
20.02.2019, 12:07
    #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
20.02.2019, 12:12
    #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
20.02.2019, 15:59
    #39776811
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на временной интервал
prosims, решение изначально неправильное: в таблице prices - текущие цены, в таблице Orders заказы с ценами на тот момент.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на временной интервал / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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