【问题标题】:Update JOINED Table with Most Recent Date使用最近日期更新已加入表
【发布时间】:2017-12-23 14:46:49
【问题描述】:

所以我很难过。我有两张表要连接在一起并更新其中一张。现在,我想用 最近 数据记录来更新它。

所以我希望这首先发生(这个顺序):

select * from APUL 
order by UIMth desc

随后更新:

UPDATE APUI
SET    APUI.udTempReviewer = APUL.ReviewerGroup
FROM   APUI 
  INNER JOIN APUL ON APUI.UISeq = APUL.UISeq 
                 AND APUI.APCo = APUL.APCo

所以基本上我想用 APUL 的最新记录更新表 APUI,因为 APUL 是发票记录表。

【问题讨论】:

  • 请显示这些表格的一些示例数据。您是否尝试 APUI 使用来自 APUL 的最新记录获取 每个 记录?还是您只对最近的APUL 记录、周期感兴趣?

标签: sql sql-server constructor sql-update


【解决方案1】:

使用Row_Number窗口函数

;WITH CTE
     AS (SELECT Row_number() OVER(partition BY uiseq, apco ORDER BY uimth DESC ) AS rn, 
                reviewergroup, 
                uiseq, 
                apco 
         FROM   apul) 
UPDATE A 
SET    A.udtempreviewer = L.reviewergroup 
FROM   apui A 
       INNER JOIN CTE L 
               ON A.uiseq = L.uiseq 
                  AND A.apco = L.apco 
Where L.Rn = 1

【讨论】:

  • 我应该把这个 WITH CTE 东西放在哪里?比如查询中的哪里?
  • @MattGordon - 这是一个单一的查询.. 你不必做任何事情
  • 不起作用,兄弟。 L.apco 没有拉出任何东西并抛出错误
  • 另外,不要缩写表名。好可怜
  • @MattGordon - 现在检查...老兄尝试一些调试.. 这些都是简单的错误
猜你喜欢
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多