2017-05-23 3 views
0

私はどのようにして、サブクエリを使用せずに、PLSQLでこのクエリを、部門内の平均給与より上PL/SQLを使用してコアリッドサブクエリをシミュレートするにはどうすればよいですか?

SELECT employee_id, first_name|| ' ' ||last_name as Name, salary, department_id 
FROM EMPLOYEES o 
WHERE SALARY > 
    (SELECT AVG(salary) FROM EMPLOYEES i 
    WHERE i.department_id=o.department_id); 

を選択するためのクエリを書き換えることができていますか?

+0

なぜPL/SQLで書き直す必要がありますか? –

+0

こんにちは、私はPL/SQLを学んでいません。私は理解している構文を理解したい構文に変換する方法の明確な説明を探しています。 – ajkc

+0

何百万もの部署がないと仮定すると、すべての部署の平均を配列にロードすることから始めます。それは、カーソルFORループの各行の簡単なプロシージャルックアップです。 (それは私が本当にループでそれをしなければならないかどうかです)。 –

答えて

0

あなたがコードを望んでいるかどうかわかりませんが、まずそれを行うために必要な手順を教えています。

- Create a cursor for the main query 
- Create a loop to navigate that cursor 
- Execute the select avg and save the result in a variable. 
- Make an IF to compare 
- Output/save the result 
関連する問題