下面是我当前的代码,其中我必须显示在两个名为部门和员工的填充表上。
Employee Name: Johnshon
Job: Service Writer
Total Pay: $56,000
========================================
Department Name: Service
Highest Total Pay: $4,500.00
我在获得最高总工资以进行展示时遇到问题。我认为我的问题可能是我声明了另一个变量名 v_dpay。我不确定我是否需要那个。我很确定我应该使用 MAX 来获得部门内最高的总薪水。我在将输出中的 ($) 和 (,) 执行到小数点后两位时也遇到了一些问题。
ACCEPT p_1 PROMPT 'Please enter the Employee ID:'
DECLARE
v_eid employee.employee_id%TYPE := &p_1;
v_count NUMBER;
v_name employee.employee_name%TYPE;
v_job employee.job%TYPE;
v_pay employee.salary%TYPE;
v_did department.department_id%TYPE;
v_dname department.department_name%TYPE;
v_dpay ?????????????????????????????????
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 employee table.');
ELSE
select employee_name, job, salary + NVL(commission, 0), department_id
into v_name, v_job, v_pay, v_did
from employee
where employee_id = v_eid;
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_name);
DBMS_OUTPUT.PUT_LINE('Job: ' || v_job);
DBMS_OUTPUT.PUT_LINE('Total Pay: ' || v_pay);
if v_did is not null then
select department_name, MAX(v_dpay)
into v_dname, v_dpay
from department, employee
where department_id = v_did;
DBMS_OUTPUT.PUT_LINE('Department Name: ' || v_dname);
DBMS_OUTPUT.PUT_LINE('Highest Total Pay: ' || v_dpay);
else
DBMS_OUTPUT.PUT_LINE('N/A');
end if;
END IF;
END;