从分组行中检索具有最大id的行的内容

时间:2017-04-21 08:33:39

标签: mysql

我有一个包含以下数据的mysql表

commodityId  ItemCode       ItemName                SellingPrice
469          8901764362804  MM Pulpy Orange Pet     18
692          8901764362309  MM Pulpy 65             65
719          8901764362804  MM Pulpy Orange Pet     20
1019         8901764362804  MM Pulpy Orange Pet     20
1041         8901764362804  MM Pulpy Orange Pet     20

请注意,项目的最近输入始终具有最大商品ID。现在我想得到一个项目的最近销售价格。我写了以下代码

select max(commodityId), itemname, sellingprice from purchases 
group by itemcode order by commodityId desc;

此代码的输出为

692     MM Pulpy 65            65
1041    MM Pulpy Orange Pet    18

我得到 18 作为最老门票的售价。我希望最近进入的售价 20 。我需要我桌子上所有物品的近期售价。有人可以建议查询中的更改吗?

我必须使用该售价作为另一个查询的一部分,我加入了4个表。

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT B.MAX_COMM_ID, A.itemname, A.sellingprice 
from purchases A
INNER JOIN (select itemcode, max(commodityid) AS MAX_COMM_ID
            from purchases
            group by itemcode ) B ON A.itemcode=B.itemcode AND A.commodityid=B.MAX_COMM_ID
;