MS-Access Получить цену товара на определенную дату заказа - PullRequest
0 голосов
/ 13 января 2010

У меня есть таблица, заполненная ценами покупки, например:

sku                   price    btw   startdate
PCR-CA5425023181515   21,17 €   1    01/01/2009
PCR-CA5425023181515  999,00 €   1    06/06/2009
PCR-CA5425023181515  444,00 €   4    09/07/2009
PCR-CA5425023181515  100,00 €   4    10/08/2009

У меня есть еще одна таблица, заполненная заказами, например:

sku                  quantity   orderdate
PCR-CA5425023181515     5       01/05/2009
PCR-CA5425023181515    10       01/12/2009
PCR-CA5425023181515    10       24/12/2009

Моя цель состоит в том, чтобы получить каждую цену покупки для заказа с этой даты. (Например: когда я заказал продукт 1 мая (01/05), он стоил 21,17 евро. Когда я заказал его 1 декабря (01/12), это стоило 100,00 евро.

Я боролся с этим в течение последнего часа, но пока не нашел ничего полезного.

1 Ответ

1 голос
/ 13 января 2010
SELECT
     O.sku,
     O.qty,
     PP.price
FROM
     Orders O
INNER JOIN Purchase_Prices PP ON
     PP.sku = O.sku AND
     PP.start_date <= O.order_date
WHERE
     NOT EXISTS
     (
          SELECT
               *
          FROM
                Purchase_Prices PP2
          WHERE
                PP2.sku = PP.sku AND
                PP2.start_date <= O.order_date AND
                PP2.start_date > PP.start_date
     )

В качестве альтернативы:

SELECT
     O.sku,
     O.qty,
     PP.price
FROM
     Orders O
INNER JOIN Purchase_Prices PP ON
     PP.sku = O.sku AND
     PP.start_date <= O.order_date
LEFT OUTER JOIN Purchase_Prices PP2 ON
     PP2.sku = O.sku AND
     PP2.start_date <= O.order_date AND
     PP2.start_date > PP.start_date
WHERE
     PP2.sku IS NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...