首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

联合查询更新求指教,该怎么解决

2014-06-09 
联合查询更新求指教UPDATE aSET a.RatingCode5 FROM Account aRIGHTJOIN e__ManagementDetail md ON md.c

联合查询更新求指教

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

热点排行