获取每件商品的最新价格

Ali*_*n I 1 sql ms-access greatest-n-per-group

我有一张桌子:

ItemID PurchaseDate Price  
001 03/17/2013 19.00  
002 03/17/2013 14.00  
001 03/18/2013 13.00  
002 03/18/2013 15.00  
001 03/19/2013 17.00  
003 03/19/2013 19.00  
Run Code Online (Sandbox Code Playgroud)

我需要写一个SQL query获得Price相应的最新PurchaseDate每个ItemID。表中的条目可能不一定按日期输入,如下所示:

ItemID PurchaseDate Price  
001 03/19/2013 17.00  
002 03/18/2013 15.00  
003 03/19/2013 19.00  
Run Code Online (Sandbox Code Playgroud)

Joh*_*Woo 7

子查询背后的想法是它分别获取PurchaseDate每个ItemID. 如果子查询的结果在两个条件下匹配,则子查询的结果随后会重新连接到表中:ItemIDPurchaseDate

SELECT  a.*
FROM    TableName a
        INNER JOIN
        (
            SELECT  ItemID, MAX(PurchaseDate) max_date
            FROM     TableName
            GROUP   BY ItemID
        ) b ON  a.ItemID = b.ItemID AND
                a.PurchaseDate = b.max_date
Run Code Online (Sandbox Code Playgroud)

  • @GordThompson 它适用于访问。只需将“TableName AS a”放在第一个 FROM 子句中,将“TableName AS b”放在第二个 FROM 子句中,哦,还有“MAX(PurchaseDate) AS max_date”。给了 JW CHECK 因为他的回答更快,我使用了他的查询。谢谢JW。 (2认同)