2016-06-02 6 views
-2

Die Aufgabe besteht darin," Schreiben Sie eine SQL-Abfrage, um die maximalen Gehälter für Mitarbeiter nach Job-Klassifizierung zu berechnen. (Ausgabe zeigt Alias).SQL-Abfrage: "Schreiben Sie eine SQL-Abfrage zur Berechnung der maximalen Gehälter für Mitarbeiter nach Job-Klassifizierung

Es wurden zwei Tabellen erstellt: Employee und Job_Title. Die Employee-Tabelle besteht aus dem Gehalt, während die Job_Title-Tabelle aus der Job-Klassifizierung besteht, z. B. "Manager".

Der aktuelle Code, den ich gezeigt habe, der Angestellte, der das maximale Gehalt in dieser Klassifikation hat, jedoch zeigt der Alias ​​nicht. Es zeigt nur alle Informationen für diesen Mitarbeiter an.

Hier ist mein Code:

SELECT * 
FROM Employee 
WHERE Salary IN (
     SELECT MAX(Salary) AS 'Maximum_Salary_Class' 
     FROM Employee 
     WHERE JobID IN (SELECT JobID 
          FROM  Job_Title_Table_ 
          WHERE Job_Classification = 'Manager')); 
+0

Welche "alias" zu bekommen? Ich verstehe nicht, was du zeigen willst. –

+1

Lehren sie nicht Joins nicht mehr? – Strawberry

+0

@IvanStarostin Hier gibt es nur einen Alias. – Strawberry

Antwort

0

Etwas wie folgt aus:

select t.Job_Classification, max(e.salary) as 'Maximum_Salary_Class' 
from Employee e join Job_Title_Table_ t on e.JobID = t.JobId 
group by t.Job_Classification; 
0

bereits.

;with cte as 
(
select E.*,J.Job_Classification,Dense_RAnk() over(partition by J.Job_Classification order by E.Salary) as DenseRank 
from Employee E 
inner join Job_Title J on E.JobID = J.JobID 
) 
select * from cte 
where DenseRank = 1 

Ich habe versucht, Ihren Zweck zu verstehen. Lassen Sie mich wissen, wenn ich nicht richtig verstanden habe.

+0

Todd .. was hast du geändert? – Sagar

+0

Code-Formatierung – Tobb

+0

oh .. thx .. Ich bin neu hier .. – Sagar

-1

Ich glaube, Sie dieses

SELECT E.*,Job_Classification 
FROM Employee 
,(
    SELECT J.JobID,J.Job_Classification,MAX(Salary) AS 'Maximum_Salary_Class' 
    FROM Employee AS E 
    ,Job_Title_Table_ AS J 
    WHERE E.JobID = J.JobID 
    AND Job_Classification = 'Manager' 
    GROUP BY J.JobID,J.Job_Classification 
) AS EJ 
WHERE E.JobID = EJ.JobID 
AND Salary = Maximum_Salary_Class 
Verwandte Themen