Tsql 使用SQL Server 2000的行号()和分区函数修改SQL查询
这是我当前的SQL查询:Tsql 使用SQL Server 2000的行号()和分区函数修改SQL查询,tsql,ssis,sql-server-2000,row-number,Tsql,Ssis,Sql Server 2000,Row Number,这是我当前的SQL查询: SELECT ROW_NUMBER() OVER(PARTITION BY [Machine_ID] ORDER BY Version DESC) AS ROW, MachineList.* FROM MachineList 基本上,我想得到不同的机器信息。如果多台机器具有相同的ID,则选择具有最新版本的机器 但是,SQL Server 2000不支持行编号功能。上面的SQL有其他选择吗 另外,我在网上找到的大多数解决方案都使用临时表。但我无
SELECT
ROW_NUMBER() OVER(PARTITION BY [Machine_ID] ORDER BY Version DESC) AS ROW,
MachineList.*
FROM
MachineList
基本上,我想得到不同的机器信息。如果多台机器具有相同的ID
,则选择具有最新版本的机器
但是,SQL Server 2000不支持行编号
功能。上面的SQL有其他选择吗
另外,我在网上找到的大多数解决方案都使用临时表。但我无法使用临时表,因为此查询将在SSIS中使用 您可以使用内联临时表来计算每个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
可能重复的
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