SQL内部加入两列(从一列开始的最小值)

时间:2016-04-21 21:44:24

标签: sql ms-access

我正在这里开展一个项目,我有两个表,一个名为跟踪的到期日期,另一个名为inventoryreport的库存数据。我需要从跟踪表中收集最小到期日期以及与之关联的数量并更新inventoryreport表。每个表中的唯一标识符是SKU编号。到目前为止,这就是我所拥有的,我知道它是不完整的,我已经在tracking.expirydate上尝试了min()我会感激任何建议。

UPDATE InventoryReport
INNER JOIN tracking ON [InventoryReport].[SKU] = [tracking].[SKU]
SET [InventoryReport].[Expiry Date]  = [tracking].[Expiry Date], 
[InventoryReport].[Quantity] = [tracking].[Quantity];

1 个答案:

答案 0 :(得分:0)

如果没有小于某些东西,那么它是最小的,或者在SQL中:

UPDATE InventoryReport AS i
INNER JOIN tracking AS t ON t.[SKU] = i.[SKU] AND NOT EXISTS(
    SELECT t2.[Expiry Date]
    FROM tracking AS t2
    WHERE t2.[SKU] = t.[SKU] AND t2.[Expiry Date] < t.[Expiry Date]
) SET i.[Expiry Date] = t.[Expiry Date], 
      i.[Quantity] = t.[Quantity]
;