1
select E.Job_ID, count(*), max(Employee_Salary) as kos, avg(Employee_Salary)
    from Employee E  
    inner join JOB D on E.Job_ID = D.Job_ID
    group by E.Job_ID

結果をD.Functioで注文したいのですが、このエラーが発生します

Msg 8120, Level 16, State 1, Line 1
Column 'JOB.Functio' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
4

3 に答える 3

2

エラーメッセージについて不明な点は何ですか?集約されていないもので注文しようとしています。これが1つの解決策です:

order by max(d.Functio)

問題は、エイリアス「ジョブ」が不明であるということです。テーブルに割り当てた「d」を使用する必要があります。

おそらく1つのjob.FunctioがジョブIDごとにあるため、これは機能するはずです。もう1つの修正は、を次のように変更するgroup byことです。

group by e.Job_ID, d.Job.Functio
于 2012-12-20T20:53:20.497 に答える
1

説明的な列(ジョブ関数?)の場合は、GROUPBYに追加します。

select E.Job_ID, count(*), max(Employee_Salary) as kos, avg(Employee_Salary)
    from Employee E  
    inner join JOB D on E.Job_ID = D.Job_ID
    group by E.Job_ID, D.Functio
    order by D.Functio

それ以外の場合は、順序付けでmin()、max()、avg()などの集計関数を適用する必要があります。

于 2012-12-20T20:55:06.767 に答える
1

およびD.Functioに含めるSelectGroup by

select E.Job_ID, D.Functio,
     count(*), max(Employee_Salary) as kos, avg(Employee_Salary)
from Employee E  
inner join JOB D on E.Job_ID = D.Job_ID
group by E.Job_ID, D.Functio
order by D.Functio
于 2012-12-20T20:55:21.403 に答える