Я пытаюсь получить сотрудника, у которого нет менеджера, чтобы показать его на моем столе, но все, что я получаю, это "данные не найдены", когда я знаю, что такой сотрудник существует в БД.
этомой код:
ACCEPT p_1 PROMPT 'Please Enter Employee ID:'
declare
v_eid employee.employee_id%TYPE := &p_1;
v_count NUMBER;
v_name employee.employee_name%TYPE;
v_sal employee.salary%type;
v_mname employee.employee_id%TYPE ;
v_dptname department.department_name%type;
v_avg employee.salary%type;
BEGIN
SELECT count(*)
INTO v_count
FROM employee
WHERE employee_id = v_eid;
IF v_count = 0 THEN
DBMS_OUTPUT.PUT_LINE(v_eid || ' is not in the table.');
ELSE
select e1.employee_name, e1.salary, department.department_name,
nvl(e2.employee_name, 0)
into v_name, v_sal, v_mname, v_dptname
from employee e1
inner join employee e2 on e1.manager_id = e2.employee_id
inner join department on e1.department_id = department.department_id
where e1.employee_id = v_eid;
select AVG(salary)
into v_avg
from employee
where department_id = (select department_id
from employee
where employee_id=v_eid);
DBMS_OUTPUT.PUT_LINE('Name:'|| LPAD(v_name,30));
DBMS_OUTPUT.PUT_LINE('Salary:'|| LPAD(to_char(v_sal,'$9,999.00'),28));
DBMS_OUTPUT.PUT_LINE('Manager Name:'|| LPAD(v_mname, 19));
DBMS_OUTPUT.PUT_LINE('Department Name:'|| v_dptname);
DBMS_OUTPUT.PUT_LINE('Department Average'|| to_char(v_avg,'$9,999.00'));
END IF;
END;
Спасибо за помощь