0

これは私の現在のSQLクエリです:

SELECT 
   ROW_NUMBER() OVER(PARTITION BY [Machine_ID] ORDER BY Version DESC) AS ROW, 
   MachineList.*
FROM  
   MachineList

基本的には、個別のマシン情報を取得したい。複数のマシンで同じ が使用されている場合はID、最新バージョンのマシンを選択してください。

ただし、SQL Server 2000 はこの機能をサポートしていませんROW_Number。上記の SQL に代わるものはありますか?

PSオンラインで見つけたほとんどのソリューションは、一時テーブルを使用しています。ただし、このクエリはSSISで使用されるため、一時テーブルを使用できませんでした。

4

2 に答える 2

0

インライン一時テーブルを使用して、各 machineID の最高バージョンを計算できます。おそらく、一時テーブルに対する SSIS の制限は # テーブルに適用され、インライン一時テーブルには適用されません

SELECT  M.*
FROM  MachineList M inner join
(select Machine_ID, max(Version) from MachineList 
group by Machine_ID ) Z on M.Machine_id = Z.Machine_id 
and M.Version = Z.Version
于 2012-10-16T20:50:33.077 に答える
0
 select m.*
 from machinelist as m
        inner join (
               select
                     t.machine_id, max(t.version) as version
               from machinelist as t
               group by t.machine_id
        ) as mm on
              mm.machine_id = m.machine_id and mm.version = m.version
于 2012-10-16T20:53:50.510 に答える