ここで見たものに基づいて、次の SELECT ステートメントを作成しました。SQL Select Max Date with Multiple records例を同じように設定しました。私はOracle 11gを使用しています。各 asset_tag に対して 1 つのレコードを返す代わりに、倍数を返します。ソース テーブルほど多くのレコードはありませんが、(私が思うに) 多いはずです。内部の SELECT ステートメントを実行すると、正しいレコード セット (asset_tag ごとに 1 つ) も返されますが、これには本当に困惑しました。
SELECT
outside.asset_tag,
outside.description,
outside.asset_type,
outside.asset_group,
outside.status_code,
outside.license_no,
outside.rentable_yn,
outside.manufacture_code,
outside.model,
outside.manufacture_vin,
outside.vehicle_yr,
outside.meter_id,
outside.mtr_uom,
outside.mtr_reading,
outside.last_read_date
FROM mp_vehicle_asset_profile outside
RIGHT OUTER JOIN
(
SELECT asset_tag, max(last_read_date) as last_read_date
FROM mp_vehicle_asset_profile
group by asset_tag
) inside
ON outside.last_read_date=inside.last_read_date
助言がありますか?