以下の機能の SQL クエリを作成する際に、特殊な問題に直面しています。以下の表を検討してください。
---------------------------------
AccountNumber JobNumber
---------------------------------
1234 1111113
1234 1111112
1234 1111111
1212 1111131
1212 1111132
クエリに渡されたアカウント番号の最新のジョブ番号を取得したい。例: アカウント番号として 1234 を渡す場合は 1111113 を取得する必要があり、1212 を渡す場合は 1111131 を取得する必要があります。これを達成するための PL/SQL クエリの作成方法 のように複数の口座番号を渡しますAccountNumber IN ('1234','1212')
。したがって、アカウント番号ごとに、最新のジョブ番号を取得する必要があります。
現在、私はこのように IN を使用せずに試しました:
SELECT *
FROM (SELECT JobNumber
FROM TABLE1
WHERE AccountNumber = ?)
WHERE ROWNUM = 1
Java JDBCでは、アカウント番号ArrayListをループし、Oracle dbに対してJDBCを実行しています。しかし、ご存知のように、4000 のアカウントのパフォーマンス ヒットがある場合、これは実行可能なソリューションではありません。
この SQL クエリの作成を手伝ってもらえますか?
編集: ここで、latest は最高のジョブ番号を意味します。たとえば、1111113 と 1111112 のうちです。1111113 は最新のデータです。