1
我有一个数据库与2表,我试图建立一个简单的查询,以返回每个项目的最新成本。MS Access查询只选择最新日期
样品:
ID,名称,成本,生效日期
1 ... ...的Item1 5 ... 16年7月1日
2 ...项目1 ... 4 ... 16年6月1日
3 ... ...项目2 6 ... 16年8月1日
4 ...的Item1 ... 2 ... 9/1/16
应仅返回第3行(第2项)和第4项(第1项的最新)。
使用Access接口,我设法让它工作,只要我根本不包含成本,并且我无法从没有Access的GROUP BY
行中删除成本。任何帮助表示赞赏!
SQL视图:
SELECT Item.Item_ID, Item.Item_Name, Rate_Changes.Cost, Max(Rate_Changes.Effective_Date) As MaxOfEffective_Date
FROM Item INNER JOIN Rate_Changes ON Item.Item_ID = Rate_Changes.Item_ID
WHERE Item.Active=True
GROUP BY Item.Item_ID, Item.Active, Item.Item_Name,
Rate_Changes.Cost, Rate_Changes.Effective_Date
,从我有限的样本数据的正常工作,谢谢!我非常肯定,对于一个给定的项目,永远不应该有重复的生效日期 - 有什么方法可以强制执行?我几乎全新接入,所以我仍然在摸索命令。 – rgdhndho
@rgdhndho。 。 。如果'id'与日期一起增加,则可以使用'id'而不是'effective_date'。 –
ID是主键,所以它绝对是唯一的。我不太清楚你的意思,我想让查询显示每个商品ID的最新价格(最大生效日期)。如何使用ID(Rate_Change表的主键)进行分组?我试过了你的另一个代码,它最终发出一条警告,说查询最多只返回一个结果。我只是投掷
Order By rc.Item_ID
到最后,而且从我所知道的情况来看它工作正常。感谢您的建议! – rgdhndho