同じテーブルに参加せずに日付の最も高い行を取得し、max(date)を使用するオプションがありますか?有効なオプションを削除してTop1の注文ですか?SQL Serverの最終日付
私はSQL Server 2000を使用しています。パフォーマンスは重要です。
編集:
表1:
columns: part - partdesc
表2:
columns: part - cost - date
select a.part,partdesc,b.cost
left join(select cost,part
right join(select max(date),part from table2 group by part) maxdate ON maxdate.date = bb.date
from table2 bb) b on b.part = a.part
from table1
作品上記のコードであれば、私は知らないが、それは私が嫌いなクエリです。そして私は非効率的だと思う。
「MAX」の日付を使用できないのはなぜですか? 「TOP 1 ORDER BY DATE DESC」は本質的に同じ動作であるが、最も高い値を見つけるのではなく、テーブル全体を順序付けることができるので、効率が悪くなる可能性がある。 – JNK
@JNKフィルターを使用すると、表の行は最大10行になります。通常の2行。それらの行から、私は最後の日付が必要です。 – BBAA
10行しかない場合、なぜパフォーマンスは考慮されますか? – JNK