ID と場所に基づいて次の最新のエントリの情報を取得し、それを実行中のクエリに追加しようとしています。テーブル内の 2 番目に新しいエントリではなく、ID に基づく前のエントリのみです。
これが可能かどうかはわかりませんが、それを行う方法や、どの方向に進むべきかさえわかりません。
以前のプログラマーが行った方法は次のとおりです。
SELECT -- blah blah blah
, (SELECT TOP 1 CAST(id AS VARCHAR) + '~' + CONVERT(VARCHAR, creation_date, 120)
FROM header hdr2
WHERE hdr2.id < hdr.id
AND hdr2.location = hdr.location
ORDER BY hdr2.id DESC) AS "prev_info"
FROM header hdr
/*blah blah blah*/
彼が単一のサブクエリのみを使用し、すべてをその 1 つの列に入れようとした理由を理解していますが、これを最適化しようとしており、他のより簡単で効率的な方法でそれを行いたいと考えています。
答えが目の前にあるような気がしますが、手を伸ばして把握することはできません。これ以上説明する必要がある場合は、遠慮なくお尋ねください。