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 回答