下午好,
我正在开发一个项目来更新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米行)。
非常感谢任何帮助!
由于
富
答案 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];