复合最大查询

时间:2017-10-13 09:18:49

标签: sql sql-server-2008 max

我需要连接几个表,而这些表又需要连接到此绘图表中绘图表的结果集,每个部分都有多个绘图编号和修订版。我需要最大图纸编号,然后是零件的最大修订版本。

我意识到我可以通过以下方式做到这一点:

操作

select part, max(dwg_num) 
from drawingtable
group by part

然后嵌入这是另一个查询,以获得最大修订,然后将其加入自己以获得其他字段,但它似乎有点凌乱,我想知道是否有人有任何想法更好的方式

1 个答案:

答案 0 :(得分:1)

使用ROW_NUMBER对每个零件的可绘制记录进行排名,并保持最佳排名。

select *
from
(
  select
    drawingtable.*,
    row_number() over (partition by part order by dwg_num desc, rev_num desc) as rn
  from drawingtable
) ranked
where rn = 1;