-1
私はPL/SQLの新機能です。誰かが私に次のシナリオを解決するのを助けることができますか? emp_id、full_name、department_id、total_salaryのような従業員の詳細を取得する方法郵便番号を入力パラメータとしてプロシージャに渡す場合。 1つのテーブルから従業員の詳細に手続きを書く方法はわかっていますが、ここでは3つのテーブルを使用する必要があります。 誰でも助けてくれますか? また、私は親切に上記のクエリは私に必要な結果を与えるなら、私に知らせてoracleのプロシージャで複数の表を使用する
Create or Replace Procedure P1(postal_cd varchar2)
as
v_empid number;
v_name varchar2(20);
v_dept_Id number(10);
v_dept_nm varchar2(10);
v_hiredate date;
v_sal number;
begin
select e.emp_id
, e.full_name||' '||e.last_name
, e.department_id
, d.department_name
, e.hiredata
, sum(e.sal) salary
into v_empid
, v_name
, v_dept_id
, v_dept_nm
, v_hiredate
, v_sal
from employees e
inner join departments d
on e.department_id = d.department_id
inner join locations l
on d.location_id = l.location.id
where l.postal_code = postal_cd
;
end;
を使用しているコードを提供しています。前もって感謝します。
なぜ実行しないのですか?それを自分で確認してください。それは正しいようです。 –
コードに問題があります。たとえば、次の文は構文的に正しくありません。 (d.location_id = l.location.id上)。 l.location_idである必要があります。また、グループなしでsum(e.sal)を実行しています。あなたの完全な要件を述べてください。私はあなたが特定の郵便番号に属する従業員の詳細を表示したいと思います。その場合、カーソルベースのアプローチに進む必要があります。また、トータルサラとはどういう意味ですか? employees表のsalカラムには、従業員の合計salを格納する必要があります。あなたは、部署、住所または郵便番号の合計のサルが欲しいですか? –
ありがとうございます。この質問は私が練習している練習の一部でした。 @phonetic_man、はい私は特定の郵便番号に属する従業員の詳細を表示する必要があります。私は練習で述べた総給与と混同しています。従業員一人当たりの総給与だけなので、集計してグループを使用する必要はありません。 –