Jas*_*son 2 sql sql-server join sql-server-2008
我正在尝试加入2个表,但只加入一组记录中的最新记录.
左表:
部分
右表:
材料
修订号从"A"开始并增加.
我想通过PartNum加入2个表,但只能加入右表中的最新记录.我已经看过其他关于SO的例子,但很难将它们放在一起.
编辑:
我发现第一个修订号是"新",然后它增加A,B,......它永远不会超过一个或两个修订,所以我不担心重复序列.但是,我如何选择最新的"新"作为第一个修订号?
如果是SQL Server 2005+
;WITH m AS
(
SELECT Partnum, Formula, RevisionNum,
rn = ROW_NUMBER() OVER (PARTITION BY PartNum ORDER BY
CASE WHEN RevisionNum ='New' THEN 1 ELSE 2 END)
FROM dbo.Material
)
SELECT p.PartNum, m.Formula, m.RevisionNum
FROM dbo.Parts AS p
INNER JOIN m ON p.PartNum = m.PartNum
WHERE m.rn = 1;
Run Code Online (Sandbox Code Playgroud)
虽然很好奇,但如果有超过26个版本(比如之后的内容Z),你会怎么做?