此处不允许使用组功能(sql-oracle)

时间:2019-05-31 12:08:28

标签: sql oracle

我想用下表更新saboloo

update sagani 
set saboloo=sum(sagani.qula + sagani.shualeduri + sagani.finaluri) 
where sagnis_id='9';

2 个答案:

答案 0 :(得分:0)

SUM在这里不适用,因为您的要求非常简单。您可以根据自己的目的尝试以下脚本-

UPDATE sagani 
SET saboloo=(sagani.qula + sagani.shualeduri + sagani.finaluri) 
WHERE sagnis_id='9';

答案 1 :(得分:0)

不允许在update中进行汇总,因为update会更改表中行中的值;数据汇总后,与原始行的连接就会丢失。

我可以想象你的意思是两件事之一。第一个是该行中的简单总和:

update sagani 
    set saboloo = (sagani.qula + sagani.shualeduri + sagani.finaluri) 
where sagnis_id = 9;  -- looks like a number so I assume it is a number

或者,您可能想要更新所有行中具有相同值的多行:

update sagani s
    set saboloo = (select sum(s2.qula + s2.shualeduri + s2.finaluri)
                   from sagani s2
                   where s2.sagnis_id = s.sagnis_id
                  )
where s.sagnis_id = 9;  

您的问题没有足够的信息来推断您的意图,尽管使用sagnis_id表示只有一行,并且您根本不希望汇总。