try
UPDATE T
SET T.[cgsl] = sum(S.[cgsl]) 
FROM [sbgl] T 
INNER JOIN (SELECT isnull(a.dw,b.dw) as dw,isnull(a.sbdm,b.sbdm) as sbdm,(isnull(sum(a.xysl),0)+ isnull(sum(b.xysl),0) as ) cgsl 
              FROM [sbcgjl] a
              INNER JOIN [sbsyjl] b ON a.dw=b.dw and a.sbdm=b.sbdm
              GROUP BY isnull(a.dw,b.dw),isnull(a.sbdm,b.sbdm)
              )
                 S ON S.dw=T.dw and S.sbdm=T.sbdm

解决方案 »

  1.   

    o,使用left join 
    UPDATE T
    SET T.[cgsl] = sum(S.[cgsl]) 
    FROM [sbgl] T 
    INNER JOIN (SELECT isnull(a.dw,b.dw) as dw,isnull(a.sbdm,b.sbdm) as sbdm,(isnull(sum(a.xysl),0)+ isnull(sum(b.xysl),0) as ) cgsl 
                  FROM [sbcgjl] a
                  LEFT JOIN [sbsyjl] b ON a.dw=b.dw and a.sbdm=b.sbdm --INNER JOIN换成LEFT JOIN
                  GROUP BY isnull(a.dw,b.dw),isnull(a.sbdm,b.sbdm)
                  )
                     S ON S.dw=T.dw and S.sbdm=T.sbdm