2017-08-15 97 views
-1

请原谅我的格式...我正在努力。选择正确的日期

我想在我的查询中根据适当的生效日期选择正确的项目价格。

例如,我们有一个具有以下信息的表格

价格表-------------------------

项目价格EFFECTIVEDATE

  • 一个$ 0.57 17年1月1日
  • 一个$ 0.72 17年6月1日

现在我有一个生产表其中包含当天生产的产品,并将列出其生产日期的数量和生产。

生产表-------------------

项目数量productionDate

  • A 100 17年2月1日
  • A 100 7/1/17

现在,当我查询这些我希望能够选择适当的价格给出了productionDate和effectiveDate。

达到此目的的最佳方法是什么?

回答

2

试试下面的(第一选择最高EFFECTIVEDATE比productionDate下,然后得到该日的价格):你是很新的查询和SQL,内部查询

SELECT preselection.Item, Price FROM 
(SELECT Production.Item, Max(effectiveDate) As MaxEffectiveDate 
FROM Production INNER JOIN Price ON Price.item = Production.Item 
Where Price.effectiveDate <= productionDate GROUP BY Production.Item) As preselection 
INNER JOIN Price ON Price.Item = preselection.Item 
AND Price.effectiveDate = preselection.MaxEffectiveDate 
+1

@詹姆斯在情况(在括号中)可以保存为一个单独的查询,例如[Get Production Effective Date]。然后,可以在另一个查询中引用保存的查询,例如'SELECT preselection.Item,Price FROM [Get Production Effective Date]作为预选INNER JOIN Price ON Price.Item = preselection.Item AND Price.effectiveDate = preselection.MaxEffectiveDate'。这种方法的好处是可以使用Access Design View单独编辑和测试这两个查询。 –

相关问题