これは非常に単純なクエリのように見えますが、明らかな何かが欠けているに違いありません。このシナリオはかなり一般的だと思います。
製品を格納するテーブルと、トランザクションを格納する別のテーブルがあります。transaction テーブルには、セールスマンに関する情報が含まれています。ここで、すべての製品をリストし、この製品を最後に販売したセールスマンの ID を含むレポートを作成する必要があります。
次のような簡単なクエリを試しました。
select id, product_name, (select salesman_id from (select salesman_id from trans where product_id = a.id order by trans_date desc) where rownum = 1) salesman_id from products a
このクエリにより、a.id で無効な識別子が返されました。
ネットを検索した後、LATERAL句を追加しようとしました。次のように
select id, product_name, salesman_id from products a, LATERAL(select salesman_id from (select salesman_id from trans where product_id = a.id order by trans_date desc) where rownum = 1)
しかし、このクエリでは不完全な SQL ステートメントが返されます。
単一のクエリでこれを達成する簡単な方法はありますか?