一尘不染

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

sql

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

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

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

我正在尝试将encounters表中的admitted列更新为iar_servicedate其中encounterin
encounterstable = patacctnumberin x_refclaimtable中的最大值

 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
      )

它仍然失败:

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

我尝试做其他一些事情,例如声明ID,但无法正常工作。


阅读 133

收藏
2021-03-08

共1个答案

一尘不染

使用相关子查询

UPDATE e
SET    ADMITTED = (SELECT max(IAR_ServiceDate)
                   FROM   ansicache..x_refClaim_table x
                   WHERE  e.ENCOUNTER = x.PatAcctNumber)
FROM   ansicache..ENCOUNTERS e
2021-03-08