日期:2014-05-17  浏览次数:20503 次

联合查询更新求指教
UPDATE a  SET a.RatingCode=5 FROM Account a   RIGHT  JOIN e__ManagementDetail md ON md.c__khmc=a.AccountId
WHERE datediff(yy,md.createdOn,getdate())<=2 GROUP BY md.c__khmc HAVING sum(md.c__dkje)>=100000

报错信息:关键字 'GROUP' 附近有语法错误。 Severity 15,应该怎么写呢
客户表Account,到款表B,更新客户表中的客户等级为5级,如果到款中到款大于10w,就是这个意思

------解决方案--------------------
或者这样:
UPDATE Account  
SET RatingCode=5 
FROM 
(
select md.c__khmc
from e__ManagementDetail md
where datediff(yy,md.createdOn,getdate())<=2 
GROUP BY md.c__khmc 
HAVING sum(md.c__dkje)>=100000 
) md
left join Account a   
       ON md.c__khmc=a.AccountId

------解决方案--------------------
UPDATE  a
SET     a.RatingCode = 5
FROM    Account a
        RIGHT  JOIN ( SELECT    c__khmc ,
                                SUM(c__dkje) c__dkje
                      FROM      e__ManagementDetail
                      WHERE     DATEDIFF(yy, md.createdOn, GETDATE()) <= 2
                      GROUP BY  c__khmc
                      HAVING    SUM(c__dkje) >= 100000
                    ) md ON md.c__khmc = a.AccountId