【发布时间】:2020-06-12 18:48:08
【问题描述】:
我正在寻求有关以下更新查询的帮助。我正在尝试使用 contractinfo 表中的最新更新合同来更新 provreg 表,但它似乎不正确。使用 contractinfo 表上的 max(lastupdate) 字段完成此更新的最佳方式是什么?
UPDATE provreg
SET ContractName = ci.ContractID,
ContractBegin = ci.ContractEff,
ContractEnd = ci.contractterm
FROM provreg pr
INNER JOIN Provider P ON pr.npi = p.npi
INNER JOIN Affiliation A ON a.provid = p.provid
INNER JOIN contractinfo ci ON ci.affiliationid = a.affiliationid
WHERE CI.CONTRACTED = 'Y'
AND ci.lastupdate = (SELECT MAX(lastupdate)
FROM PlanReport_QNXT_LA.dbo.contractinfo
WHERE contractid = ci.contractid)
【问题讨论】:
-
您使用的是哪个 dbms? (该语法不是 ANSI SQL。)
-
SSMS,我更改了最后一条语句,我最初发布了错误的查询,因为我尝试了不同的方式。
-
您能否在db<>fiddle 上提供一些示例数据和预期输出?
标签: sql sql-server sql-update max