日付列が特定の日付まで最新である行を選択するパターンに従って、かなりの数のストアド プロシージャがあります。2 つの形式が使用されています。
select top 1 x, y, z from sometable where a=b and date <= @date order by date desc
また
select x, y, z from sometable where a=b and date=(select max(date) from sometable where a=b and date <= @date)
サブクエリの代わりに結合を使用する 2 番目の形式の派生も想像できます。
2 番目のフォームが複数の行を返す場合は無視できます。決してそうではないと仮定してください。
これは多くの場所で使用されており、その一部はパフォーマンスが重要なコードの多数の行に対して使用されているため、より最適なソリューション (他の提案である可能性があります) を標準化したいと考えています。
一部のグーグルでは、TOP 1 と MAX の多数の比較が行われていますが、通常は単一の値であり、サブクエリはありません。その場合、MAX が明らかに勝者ですが、サブクエリがそれを変更するかどうかはわかりません。
この分野で私より知識のある方の意見をいただければ幸いです (ほとんどの方がそうです!)。