我有一个名为 TRANSFER 的存储事务的表。我需要编写一个查询以仅返回给定库存标签的最新交易条目(这是识别材料的唯一键),因此我使用了以下查询
SELECT a.TRANSFER_ID
, a.TRANSFER_DATE
, a.ASSET_CATEGORY_ID
, a.ASSET_ID
, a.TRANSFER_FROM_ID
, a.TRANSFER_TO_ID
, a.STOCK_TAG
FROM TRANSFER a
INNER JOIN (
SELECT STOCK_TAG
, MAX(TRANSFER_DATE) maxDATE
FROM TRANSFER
GROUP BY STOCK_TAG
) b
ON a.STOCK_TAG = b.STOCK_TAG AND
a.Transfer_Date =b.maxDATE
但是我遇到了一个问题,当在同一个转移日期发生多个转移时,它会返回所有行,因为我只需要最新的。我怎样才能得到最新的行?
编辑:
transfer_id transfer_date asset_category_id asset_id stock_tag
1 24/12/2010 100 111 2000
2 24/12/2011 100 111 2000