我正在尝试根据同一个表(学生表)中的另一列和另一个表(学校表)中的列来更新列
代码是:
update student_table
set student_code =
(select l.student_code
from school_table l, student_table n
where l.school = n.schoolname)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
ORA-01427 单行子查询返回多于一行
任何帮助,将不胜感激。
----------
User
----------
user_ID(pk)
UserEmail
----------
Project_Account
----------
actno
actname
projno
projname
ProjEmpID
ProjEmpMGRID
Run Code Online (Sandbox Code Playgroud)
其中ProjEmpID,ProjEmpMGRID是user_id,ProjEmpMGRID可以为null.我需要查找useremail并显示表project_account.我需要使用具有重复值的actNo进行查询.
我的查询是这样的:
select projno,projname,actno,actname,
(select u.user_email as project_manager from project_account c left outer join users u
on u.user_id = c.ProjEmpID where actno='some no')as project_manager,
(select u.user_email as program_manager from project_account c left outer join users u
on u.user_id = c.ProjEmpMGRID where actno='someno') as program_manager
from project_account where actno='someno'
Run Code Online (Sandbox Code Playgroud)
我在Oracle中收到的错误消息:
ora-01427单行子查询返回多行
当我的子查询返回多个电子邮件ID时,我收到此错误.正如我所说,行为不是不唯一的.我能理解错误,但我无法弄清楚解决方案.我在子查询中执行左外连接,因为prog manager id中可能有空值.
任何帮助,将不胜感激.
我已经尝试了我能想到的一切,但无法解决这个SQL错误:
SQL错误:ORA-00933:SQL命令未正确结束
这是Oracle SQL.
UPDATE SALES_DATA_FAMILY_2007 A
SET A.POG_ID=B.POG_ID
FROM POG_HIERARCHY B
WHERE A.FAMILY_ID=B.FAMILY ;
Run Code Online (Sandbox Code Playgroud)
我尝试过的另一种选择如下.不幸的是,它给出了另一个错误:ORA-01427:单行子查询返回多行
UPDATE SALES_DATA_FAMILY_2007
SET POG_ID= (SELECT POG_HIERARCHY.POG_ID FROM POG_HIERARCHY
WHERE SALES_DATA_FAMILY_2007.FAMILY_ID=POG_HIERARCHY.FAMILY_ID)
WHERE EXISTS (SELECT POG_HIERARCHY.POG_ID FROM POG_HIERARCHY
WHERE SALES_DATA_FAMILY_2007.FAMILY_ID=POG_HIERARCHY.FAMILY_ID)
;
Run Code Online (Sandbox Code Playgroud)
请帮忙!