【问题标题】:MS-Access Get price of product at certain order dateMS-Access 获取特定订单日期的产品价格
【发布时间】:2010-01-13 15:49:41
【问题描述】:

我有一张表格,里面填满了采购价格,如下所示:

sku 价格 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 数量 orderdate PCR-CA5425023181515 5 01/05/2009 PCR-CA5425023181515 10 01/12/2009 PCR-CA5425023181515 10 24/12/2009

我的目标是从该日期获得每个订单的每个购买价格。 (例如:当我在 5 月 1 日(01/05)订购产品时,它的价格为 21,17 欧元。 当我在 12 月 1 日(01/12)订购时,它的价格为 100,00 欧元。)

过去一个小时我一直在努力解决这个问题,但还没有发现任何有用的东西。

【问题讨论】:

    标签: sql ms-access join subquery


    【解决方案1】:
    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
    

    【讨论】:

    • 就是这样!第一个,带有子查询,就像一个魅力。我也在尝试使用 WHERE EXISTS,但有多个子查询。它没有成功。然而,第二个没有奏效。 Access 抱怨缺少运营商。 (这显然不是真的)
    • 要小心,因为带有 NOT 的子查询在 Jet/ACE 中没有得到很好的优化,并且并不总是使用条件两侧的索引。在这方面,NOT EXISTS 甚至比 NOT IN 更糟糕,NOT IN 大部分时间都使用这两个索引。它不起作用的情况并非完全可预测,并且由于它可能与元数据有关,因此今天不是性能猪的 NOT 子查询可能是在涉及更多记录后的某些其他情况下,例如。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多