gpt4 book ai didi

sql - 连接两个表,只使用右表的最新值

转载 作者:行者123 更新时间:2023-12-04 16:09:16 24 4
gpt4 key购买 nike

我正在尝试连接 2 个表,但只连接一组记录中的最新记录。

左表:

部分

  • Part.PartNum

右表:

Material

  • Material .Partnum
  • Material .配方
  • Material.RevisionNum

修订号从“A”开始递增。

我想按 PartNum 连接 2 个表,但只连接右表中的最新记录。我看过关于 SO 的其他示例,但很难将它们放在一起。

编辑:

我发现第一个修订号是"new",然后它递增 A、B、...它永远不会超过一两次修订,所以我不担心遍历序列。但是,如何选择以“New”为第一个修订号的最新版本呢?

最佳答案

如果是 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;

虽然很好奇,但如果有超过 26 个修订(例如 Z 之后的内容),您会怎么做?

关于sql - 连接两个表,只使用右表的最新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9502213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com