包含聚合的更新语句在SQL Server中不起作用

Rob*_*ton 3 sql sql-server aggregate max

我希望有人可以在这里帮助我的语法.我有两个表ansicache..encountersansicache..x_refclaim_Table

encounters表有一encounter列与patacctnumber列中的列匹配x_refclaim_table.

但是,有时patacctnumber可以在x_refclaim_table不同的服务日期(列iar_servicedate)中显示两次.

我想更新encounters表,admitted列的最大值iar_servicedate,其中encounterencounters表= patacctnumberx_refclaim

 update ansicache..ENCOUNTERS 
       set ADMITTED=max(IAR_ServiceDate) 
 from
     (
       ansicache..ENCOUNTERS e (nolock) 
          join 
       ansicache..x_refClaim_table x (nolock)
          on e.ENCOUNTER=x.PatAcctNumber
      )
Run Code Online (Sandbox Code Playgroud)

它仍然失败:

消息157,级别15,状态1,行1聚合可能不会出现在UPDATE语句的集合列表中.

我尝试过做一些其他的事情,比如声明一个ID,却无法让它工作.

Mar*_*ith 7

使用相关的子查询

UPDATE e
SET    ADMITTED = (SELECT max(IAR_ServiceDate)
                   FROM   ansicache..x_refClaim_table x
                   WHERE  e.ENCOUNTER = x.PatAcctNumber)
FROM   ansicache..ENCOUNTERS e 
Run Code Online (Sandbox Code Playgroud)