2

同じテーブルに参加せずに最大日付の行を取得して max(date) を使用するオプションはありますか?? Top1 order by desc は有効なオプションですか?

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

上記のコードが機能するかどうかはわかりませんが、それは私が嫌いなクエリです。そして私には効率が悪いようです。

4

2 に答える 2

1
SELECT TOP 1 columnlist
FROM table
ORDER BY datecol DESC 

datacols が必要な結果を得るのに十分正確であると仮定すると、確かに有効なオプションです (つまり、1 日 1 行であり、日付がそれを反映している場合は、確かです。1 分あたり数行の場合は、十分に正確であること)。

パフォーマンスは、インデックス作成戦略とハードウェアによって異なります。

于 2012-03-05T14:01:47.890 に答える