私はこのロジックに従うクエリを書き込もうとしています:
以前のステータスコードがXであったアカウントの最初の次のステータスコードを見つけます。
したがって、次のテーブルがある場合:
id account_num status_code
64 1 X
82 1 Y
72 2 Y
87 1 Z
91 2 X
103 2 Z
結果は次のようになります。
id account_num status_code
82 1 Y
103 2 Z
私はいくつかの解決策を考え出しましたが、私はSQLにそれほど優れているわけではないので、これまでのところかなり無関心でした。私はここの誰かが私を正しい方向に向けることができるかもしれないことを望んでいました。
意見:
SELECT account_number, id
FROM table
WHERE status_code = 'X'
クエリ:
SELECT account_number, min(id)
FROM table
INNER JOIN view
ON table.account_number = view.account_number
WHERE table.id > view.id
この時点で、必要なIDがありますが、そのIDを使用してstatus_codeを検索する別のクエリを作成する必要があります。
編集:コンテキストを追加するために、status_codeがXの呼び出しを見つけようとしています。呼び出しのstatus_codeがXの場合、次に試行するときに別の方法でダイヤルします。このクエリの目的は、最初のダイヤルがXステータスコードになった場合に2番目のダイヤルの結果を表示するレポートを提供することです。