Date 在一列中获取最大值(日期)的整个记录

Date 在一列中获取最大值(日期)的整个记录,date,ms-access,transactions,max,Date,Ms Access,Transactions,Max,我正在尝试查询事务的数据。我想为最新日期的交易获取多个列。PONumber,供应商,每件商品的价格,上次购买。例如: 数据: 期望结果集: PONumber Item Vendor Price DateOrdered 1 ABC Wal-Mart 1.00 10/29/12 3 XYZ Wal-Mart 2.00 10/30/12 尝试在DateOrdered上使用max函数,但当我包括供应商时

我正在尝试查询事务的数据。我想为最新日期的交易获取多个列。PONumber,供应商,每件商品的价格,上次购买。例如:

数据:

期望结果集:

PONumber    Item    Vendor    Price    DateOrdered
1           ABC     Wal-Mart  1.00     10/29/12
3           XYZ     Wal-Mart  2.00     10/30/12
尝试在DateOrdered上使用max函数,但当我包括供应商时,我会得到每个供应商和项目的最后一次购买(行太多)。每个项目我需要一个记录。关于如何实现这一目标有什么想法吗?将MS Access 2007与ODBC一起使用到oracle表。提前谢谢。

怎么样:

SELECT 
   tran.PONumber, 
   tran.Item, 
   tran.Vendor, 
   tran.Price, 
   tran.DateOrdered
FROM tran
WHERE tran.DateOrdered = (
   SELECT Max(DateOrdered) 
   FROM tran t 
   WHERE t.item=tran.item)

tran是您的表。

Bill Karwin对这个问题有一种优雅的RDBMS不可知方法:。你必须用你的实际数据做一些基准测试,看看他的方法比@Remou的更好还是更差。@user714965就是这样。道歉。
SELECT 
   tran.PONumber, 
   tran.Item, 
   tran.Vendor, 
   tran.Price, 
   tran.DateOrdered
FROM tran
WHERE tran.DateOrdered = (
   SELECT Max(DateOrdered) 
   FROM tran t 
   WHERE t.item=tran.item)