当前位置: 代码迷 >> Sql Server >> UPDATE SQL 怎么写
  详细解决方案

UPDATE SQL 怎么写

热度:105   发布时间:2016-04-24 09:28:27.0
UPDATE SQL 如何写
SELECT 查询如下,是没有什么问题的.
SELECT Mbae.ae07,Mbae.ID,SUM(Qcount.ga91) SUMga91 
FROM Mbae INNER JOIN Qcount ON Mbae.ae01=Qcount.ga51 AND Mbae.ae09=Qcount.ga06 
AND Mbae.ae02=Qcount.ga07 AND Mbae.ae05=Qcount.ga08
GROUP BY Mbae.ae07,Mbae.ID

现在我要写成UPDATE  如下
UPDATE Mbae SET Mbae.ae07=SUM(Qcount.ga91)
FROM Mbae INNER JOIN Qcount ON Mbae.ae01=Qcount.ga51 AND Mbae.ae09=Qcount.ga06 
AND Mbae.ae02=Qcount.ga07 AND Mbae.ae05=Qcount.ga08
GROUP BY Mbae.ID 

老是显示 关键字 'GROUP' 附近有语法错误。  大家帮忙看一下这个UPDATE SQL 如何写,   谢谢.


------解决思路----------------------
你把你上面的汇总语句当做一个临时表 ,更新的时候利用这个临时表更新即可,update 语句是不可以直接group by 的。

因为没你具体表  随便写了个格式供参考:
UPDATE Mbae SET Mbae.ae07=TAB.SUMga91  FROM (SELECT Mbae.ae07,Mbae.ID,SUM(Qcount.ga91) SUMga91 
FROM Mbae INNER JOIN Qcount ON Mbae.ae01=Qcount.ga51 AND Mbae.ae09=Qcount.ga06 
AND Mbae.ae02=Qcount.ga07 AND Mbae.ae05=Qcount.ga08
GROUP BY Mbae.ae07,Mbae.ID) AS TAB
WHERE Mbae.ae01=TAB.ga51 AND Mbae.ae09=TAB.ga06 
AND Mbae.ae02=TAB.ga07 AND Mbae.ae05=TAB.ga08
------解决思路----------------------
with cte as (
SELECT Mbae.ae07,Mbae.ID,SUM(Qcount.ga91) SUMga91 
FROM Mbae INNER JOIN Qcount ON Mbae.ae01=Qcount.ga51 AND Mbae.ae09=Qcount.ga06 
AND Mbae.ae02=Qcount.ga07 AND Mbae.ae05=Qcount.ga08
GROUP BY Mbae.ae07,Mbae.ID
)
UPDATE cte SET ae07=SUMga91 
  相关解决方案