访问SQL:选择最近的日期而不是日期列表

时间:2016-06-27 12:26:31

标签: sql ms-access

我有一个商品价格和价格日期表以及另一个包含供应商交易数据的表格,其中还有一个包含日期的列。价格日期和供应商日期列不相同。如果我从供应商表中选择日期,我想检索最接近该供应商交易日期的日期的商品价格。商品价格日期可以在供应商交易日期之前或之前,但不能晚于该日期。

工作答案: [List3是可能的供应商日期,List4是商品]

SELECT TOP 1 CommPrices.Price
FROM CommPrices
WHERE (((CommPrices.DateComm)<=[Forms]![Tool Should Cost]![List3]) AND ((CommPrices.Commodity)=[Forms]![Tool Should Cost]![List4]))
ORDER BY CommPrices.DateComm DESC;

我想要的例子:

假设商品铜具有以下日期和价格数据: 01/01/2015 $ 10.00&amp; 01/01/2016 $ 5.00&amp; 06/06/2016 $ 15.00

如果我选择一个随机供应商日期,可以说是2016年2月,那么最近的日期是2016年1月1日,因此我应该检索5美元。

1 个答案:

答案 0 :(得分:1)

只需添加TOP 1ORDER BY

SELECT TOP 1 CommPrices.Price
FROM CommPrices
WHERE CommPrices.DateComm <= [Forms]![Tool Should Cost]![List 3]
ORDER BY CommPrices.DateComm DESC;