更新表格中的平均值
问题描述:
我正在通过向其添加一些值来更新我的标记平均值。更新表格中的平均值
我的学生表包含(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:
答
UPDATE NewADMITED_TABLE
SET AVGMARK = (AVGMARK + 10)
- 这不是一个派生列了
WHERE COURSCODE = 'AAAA'
AND NOGROUP = 2
AND SEMESTER = 'AUTMN
您尝试更新表中的列,这是不可能的平均值。 –
你有语法错误 - 括号应该包括SELECT。你可以发布修复后得到的错误吗? –
这是不可能的,这是一个视图,除非将所有选定列写入新表,否则不能直接修改此视图中的值。然后执行我给你的下面的查询。 (您的查询中也有一些语法错误) – LONG