SQL group by和max以及其他字段

时间:2014-10-10 05:08:03

标签: sql group-by max

我有一张包含以下内容的表:

ITEMID COSTAMOUNTPOSTED QTY DATEPHYSICAL
10001       20          20   2014-10-01
10001       30          20   2014-10-20
10005       20          20   2014-10-01
10005       20          30   2014-10-15

我想选择项目的最后一次物理动作,我想得到的结果是:

ITEMID COSTAMOUNTPOSTED QTY DATEPHYSICAL
10001       30          20   2014-10-20
10005       20          30   2014-10-15

我运行的查询:

SELECT itemid,costamountposted,qty,datephysical
  FROM A 
  where datephysical =(select max(datephysical) 
  FROM A

但我只得到物理日期最大的物品的结果。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用子查询

执行此操作
SELECT a.*
FROM tableName a 
     INNER JOIN
     (
        SELECT ITEMID , MAX(DATEPHYSICAL) max_date
        FROM tableName 
        GROUP BY ITEMID 
     ) b ON a.ITEMID  = b.ITEMID AND a.DATEPHYSICAL = b.max_date