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