2016-04-19 11 views
0

私は何千ものデータを持つデータベースを持っています。テーブルの名前はPerson11ですSQL ORACLEサブクエリ。私の結果を修正する必要があります

Cat値がNで、給与がJobTitleを持つすべての人の平均給与よりも少なくとも30%高い人の連結名、JobTitle、給与を選択する必要がありますおよびNのCat値。3つの列見出しは、Name、JobTitleおよびSalaryである必要があります。行は伝統的な電話帳の順序でソートする必要があります。

これまでのところ、これは私のコードです:

SELECT INITCAP(Fname || ' ' || Lname) AS Name, 
    INITCAP(JobTitle) AS JobTitle, Salary 
FROM Person11 
WHERE Upper(Cat) = 'N' 
AND Salary >= 1.30 * ( 
    Select avg(salary) 
    FROM Person11 
    Where upper(Cat) = 'N') 
ORDER BY upper(Lname), upper(Fname); 

これは私にn個の彼らの猫の値との平均給与よりも30%高いとすべての人々の出力を提供します。

JOB TITLEを持つ全員の平均給与より30%高いすべての人を見つけることができますか?また、ネコの価値は「N」ですか?

答えて

0

あなたはJobTitleでcoditionを追加必要があります。

SELECT Initcap(Fname || ' ' || Lname) AS Name, 
    Initcap(JobTitle) AS JobTitle, Salary 
FROM Person11 p 
WHERE Upper(Cat) = 'N' 
AND Salary >= 1.30 * ( 
    SELECT Avg(salary) 
    FROM Person11 
    WHERE Upper(Cat) = 'N' AND JobTitle = p.JobTitle) 
ORDER BY Upper(Lname), Upper(Fname); 
+0

それは表の別名の前に 'AS'を削除し、 – Anthony

+0

が修正「SQLコマンドが正常に終了していません」というエラーを与えます... –

関連する問題