Sql HR模式ORACLE
HR模式ORACLE 创建函数“GET_EMPLOYEE_SUMMARY”,该函数接收员工ID,并通过输出参数返回包含以下信息的数据结构: -员工ID -名字 -姓 -经理姓名 -部门名称 因此,经理的名字基于员工id 查询:Sql HR模式ORACLE,sql,oracle,Sql,Oracle,HR模式ORACLE 创建函数“GET_EMPLOYEE_SUMMARY”,该函数接收员工ID,并通过输出参数返回包含以下信息的数据结构: -员工ID -名字 -姓 -经理姓名 -部门名称 因此,经理的名字基于员工id 查询: select e.first_name as first_name, e.last_name, e.employee_id, e.manager_id as Name, d.department_name
select
e.first_name as first_name,
e.last_name,
e.employee_id,
e.manager_id as Name,
d.department_name
from employees e
Cross join departments d
但是我有一些错误。。。idk您只需再次与
EMPLOYEE
表进行自联接,与DEPARTMENT
表的联接应为内部联接
需要以下内容:
SELECT
E.FIRST_NAME AS FIRST_NAME,
E.LAST_NAME,
E.EMPLOYEE_ID,
M.FIRST_NAME || M.LAST_NAME AS MANAGER_NAME, -- Change it according to your requirement
D.DEPARTMENT_NAME
FROM
EMPLOYEES E
JOIN EMPLOYEES M ON E.MANAGER_ID = M.EMPLOYEE_ID
JOIN DEPARTMENTS D ON D.DEPARTMENT_ID = E.DEPARTMENT_ID
WHERE
E.EMPLOYEE_ID = 100;
干杯 因为这看起来很像家庭作业,所以这里有一个粗略的指南,您需要填写以下空白: 你问题的第一部分是: 创建函数
GET\u EMPLOYEE\u SUMMARY
因此,您不应该从编写SQL查询开始,而应该编写PL/SQL语句:
创建函数GET\u EMPLOYEE\u SUMMARY。。。
您可以在中查找完整的语法
接收员工ID的
所以函数的一个参数应该是:
i\u employee\u id在employee.employee\u id%类型中
它通过一个输出参数返回一个包含以下信息的数据结构
因此,您的返回类型应该是一个由以下语句创建的类型:
将类型创建为对象(
)
然后可以在函数声明中使用该返回类型
在为函数编写PL/SQL块时,您可以包含查询,该查询应如下所示:
创建函数
是
开始
选择E.FIRST_NAME,
E.姓,
M.姓
D.部门名称
进入
,
,
来自雇员
左外接
ON(E.MANAGER\u ID=M.EMPLOYEE\u ID)
内部连接部门D
ON(D.部门ID=E.部门ID)
其中E.EMPLOYEE_ID=i_EMPLOYEE_ID;
回来
例外
当找不到数据时
终止
/
交叉连接
?!?我会定期进行内部加入
。您需要再次加入员工才能获得经理的姓名。但当我进行加入时,还不完整。因为在employees表中,我的员工id=100,经理id=101,101的名字是alex,100是joao,当我返回100名员工查询时,经理的名字没有出现。。这是一个数字。。我必须把它和一个名字联系起来我如何再次加入?在e.manager_id=e2.employee_idthx bro上加入雇员e2,在sql(查询)中我懂一点,但pl sql我有很多困难。这不是我的家庭作业。。这只是一个教程,看看我是否同意这个观点(开发人员)或不在公司。。。我喜欢开发,但它太难了