更新表格中的平均值

更新表格中的平均值

问题描述:

我正在通过向其添加一些值来更新我的标记平均值。更新表格中的平均值

我的学生表包含(NOSTUDENT,COURSECODE,SEMESTER,NOGROUPE,MARK)列。

我的看法:AverageByGroupe包含在相应学期之后该课程的学生的平均分数。

CREATE OR REPLACE VIEW AverageByGroup AS 
SELECT COURSCODE, NOGROUPE, SEMESTER, AVG(MARK) AS AVGMARK 
FROM ADMITED_TABLE GROUP BY COURSECODE,NOGROUPE,SEMESTER; 

问:我想更新的平均成绩为给定的过程中,组,学期10,但AVGMARK是注意列,它所正确的UPDATE语法。

我曾尝试:

UPDATE ADMITED_TABLE 
SET AVG(MARK) = SELECT((AVG(MARK) + 10) 
FROM ADMITED_TABLE WHERE COURSCODE = 'AAAA' 
AND NOGROUP = 2 
AND SEMESTER = 'AUTMN'); 

Error: 
Error de command ligne: 2 Column: 8 
Rapport of error - 
Erreur SQL : ORA-00927: missing equal sign 
00927. 00000 - "missing equal sign" 
*Cause:  
*Action: 

编辑: 更清楚,这是一个发生变异表,所以每次我想使用的INSTEAD OF INSERT触发器至极火灾标记平均值通过调整该标记来改变。

对于选择语法错误,我包括选择(

UPDATE ADMITED_TABLE 
SET AVG(MARK) = (SELECT (AVG(MARK) + 10) 
FROM ADMITED_TABLE WHERE COURSCODE = 'AAAA' 
AND NOGROUP = 2 
AND SEMESTER = 'AUTMN'); 

错误:

ORA-00927: missing equal sign 
00927. 00000 - "missing equal sign" 
*Cause:  
*Action: 
+1

您尝试更新表中的列,这是不可能的平均值。 –

+0

你有语法错误 - 括号应该包括SELECT。你可以发布修复后得到的错误吗? –

+1

这是不可能的,这是一个视图,除非将所有选定列写入新表,否则不能直接修改此视图中的值。然后执行我给你的下面的查询。 (您的查询中也有一些语法错误) – LONG

UPDATE NewADMITED_TABLE

SET AVGMARK = (AVGMARK + 10) - 这不是一个派生列了

WHERE COURSCODE = 'AAAA'

AND NOGROUP = 2

AND SEMESTER = 'AUTMN