ORA-01732错误

时间:2018-02-17 18:28:00

标签: sql oracle

我有一张桌子'教官':

enter image description here

和任务:

  

如果教师教授的课程数量少于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:此视图上的数据操作操作不合法

问题出在哪里?

1 个答案:

答案 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);