我有一个表students
,我创建了列average_grades,我还有一个表grades
,其中包含G_id,g_grades,g_course,g_student,g_data列。
我想将所有平均成绩添加到students
表格中的average_grades列,我的查询有相同的错误
insert into students (average_grades)
select avg(grades.g_grade)
from grades
和我的错误
从第7行开始出错:在命令中插入7 - 插入学生(average_grades)从成绩中选择avg(grades.g_grade)
错误报告 - SQL错误:ORA-01400:невозможновставитьNULLв(“DB_141ADM036”。“学生”。“ST_ID”)01400。00000 - “无法将NULL插入(%s)”
*原因:尝试将NULL插入先前列出的对象中 *操作:这些对象不能接受NULL值。
编辑:俄语翻译:
ORA-01400:无法插入NULL(“DB_141ADM036”。“学生”。“ST_ID”)
答案 0 :(得分:0)
它似乎是你在学生表中插入新记录,并猜测学生表中还有更多列也需要提供。
insert into students (S_id,average_grades)
select XXX, avg(grades.g_grade) // logic to get student ID
from grades
我猜如果你已经在学生表中插入记录,那么你需要更新average_grades列,如
Update students
SET average_grades = ( select avg(grades.g_grade from grades )
WHERE Student_Id = XXX