我有一张桌子'教官':
和任务:
如果教师教授的课程数量少于1 在一个命令中将薪水更新为30000,否则为35000。
我写了这段代码:
update (select name, salary, count(course_id) as nm
from instructor i
left join teaches t on t.id = i.id
group by name, salary)
set salary =
case
when nm < 1 then 30000
else 35000
end
然而,它给出了错误
ORA-01732:此视图上的数据操作操作不合法
问题出在哪里?
答案 0 :(得分:1)
这些日子似乎是popular homework question,是吗?
重复一遍:这样的事情怎么样(你可能需要调整列名):
update instructor i set
i.salary = (select case when count(*) < 1 then 30000
else 35000
end
from teaches t
where t.id_instructor = i.id_instructor);