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

时间:2012-10-30 13:52:08

标签: date ms-access transactions max

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

数据:

PONumber    Item    Vendor    Price    DateOrdered
1           ABC     Wal-Mart  1.00     10/29/12
2           ABC     BestBuy   1.25     10/20/12
3           XYZ     Wal-Mart  2.00     10/30/12
4           XYZ     HomeDepot 2.50     9/14/12

期望的结果集:

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表。提前谢谢。

1 个答案:

答案 0 :(得分:3)

怎么样:

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是你的桌子。