0

免除された従業員の最低給与と、免除されていない従業員の平均給与を SINGLE SQL ステートメントで計算します。サブクエリを使用して、両方の要素をクエリに組み込みます。次のようになります。

Min Exempt Salary   Average Non-Exempt Salary
47,000                           35,271

私はそれを別々に行う方法を知っていますが、上記のようにそれを行う方法を理解することはできません.これは私が持っている声明です.

SELECT jobs1.exempt_nonexempt_status,
       Min (employees.salary)AS Minimal_Exempt_Salary
FROM   employees
       LEFT JOIN jobs1
              ON employees.job_title = jobs1.job_title
WHERE  jobs1.exempt_nonexempt_status = 'Exempt'
GROUP  BY jobs1.exempt_nonexempt_status

SELECT jobs1.exempt_nonexempt_status,
       Avg (employees.salary)AS Average_Non_Exempt_Salary
FROM   employees
       LEFT JOIN jobs1
              ON employees.job_title = jobs1.job_title
WHERE  jobs1.exempt_nonexempt_status = 'Non-exempt'
GROUP  BY jobs1.exempt_nonexempt_status 
4

2 に答える 2

2

これを試して:

SELECT 
    MIN(CASE WHEN J.exempt_nonexempt_status = 'Exempt'
             THEN E.Salary
             END) AS Minimal_Exempt_Salary,

    SUM(CASE WHEN J.exempt_nonexempt_status = 'Non-exempt'
             THEN E.Salary
             END) AS Average_Non_Exempt_Salary

FROM Employees E
LEFT JOIN JOBS1 J ON J.job_title = E.job_title
WHERE J.exempt_nonexempt_status IN ('Exempt', 'Non-exempt')
于 2012-08-20T06:13:50.847 に答える
1

これを行う通常の方法は次のとおりです。

select  j.exempt_nonexempt_status
,       avg(case when j.exempt_nonexempt_status='Non-exempt' then e.salary end) 
            as Average_Non_Exempt_Salary
,       min(case when j.exempt_nonexempt_status='Exempt' then e.salary end)
            as Minimal_Exempt_Salary
from    Employees e 
left join 
        jobs1 j
on      e.job_title = j.job_title
group by 
        j.exempt_nonexempt_status

しかし、それはサブクエリを使用しません。もう 1 つの方法は、2 つのクエリを外側の選択でラップすることです。

select  (
        select MIN (employees.salary)
        from Employees left join jobs1
        on employees.job_title = jobs1.job_title
        where jobs1.exempt_nonexempt_status='Exempt'
        group by jobs1.exempt_nonexempt_status
        ) as MinimalExemptSalary
,       (
        select avg (employees.salary)
        from Employees left join jobs1
        on employees.job_title = jobs1.job_title
        where jobs1.exempt_nonexempt_status='Non-exempt'
        group by jobs1.exempt_nonexempt_status
        ) as AverageNonExemptSalary
于 2012-08-20T06:14:23.767 に答える