访问更新查询:Id匹配,日期在两列中的日期之间

时间:2016-10-14 16:41:22

标签: sql ms-access

下午好,

我正在开发一个项目来更新Access 2010数据库中的历史定价。我有一个更新查询,其中交易列表包含产品ID,销售日期和批次。

我有第二个表,其产品ID包含开始日期列,结束日期列以及当时产品的批发价值。

我到目前为止的代码如下:

UPDATE
    [Copy Of MFRM_SALES_DATA]
LEFT JOIN
    [Pricing over Time]
ON
    [Copy Of MFRM_SALES_DATA].VSN = [Pricing over Time].[Product Value]

SET [Copy Of MFRM_SALES_DATA].Upd_Wholesale =
    IIF
    (
            [Copy Of MFRM_SALES_DATA].[dt]>[Pricing over Time].[Start Date]
        AND [Copy Of MFRM_SALES_DATA].[dt]<[Pricing over Time].[End Date],
        [pricing over time].[value]
    );

表格命名可能更清晰,但我们可以专注于任务。当我运行它时,它会返回UPD_Wholesale,并在列中一直显示空白(大约1.2米行)。

非常感谢任何帮助!

由于

1 个答案:

答案 0 :(得分:1)

你的问题可能源于JOIN两边的多个值。您想要做的是将一个产品与任何销售联系起来:

UPDATE
    [Copy Of MFRM_SALES_DATA]
LEFT JOIN
    [Pricing over Time]
ON
    [Copy Of MFRM_SALES_DATA].VSN = [Pricing over Time].[Product Value] AND
    [Copy Of MFRM_SALES_DATA].[dt]>[Pricing over Time].[Start Date] AND
    [Copy Of MFRM_SALES_DATA].[dt]<[Pricing over Time].[End Date],

SET 
    [Copy Of MFRM_SALES_DATA].Upd_Wholesale = [pricing over time].[value];