0

こんにちは、 EmployeeDepartmentの 2 つのテーブルがあります。従業員にはempid、firstName、salary、Department_IDがあり、部門にはdeptidとdeptnameがあります。各部署の最高年俸社員名を給与で表示したい。私は次のコードでやった

select  MAX(E.Salary),D.Name from Employee as E JOIN Department As D
ON e.Department_ID = D.Department_ID
GROUP BY D.Name

部門テーブルのみから提供しています(ここには E.FirstName を含めませんでした)。以下のようにクエリを書くと

select E.FirstName MAX(E.Salary),D.Name from Employee as E JOIN Department As D
ON e.Department_ID = D.Department_ID
GROUP BY D.Name

そのエラーを与える

E.FirstName は、集計関数にも GROUP BY 句にも含まれていません。

従業員名も表示するようにこれを変更するにはどうすればよいですか?

group by 句にも E.FirstName を追加すると、次の出力が得られます。

名 給与 部署名

BAKER 1400.00 オペレーション

アレン 5400.00 リサーチ

スミス 1800.00 リサーチ

デニス 4500.00 売り上げ

ミヒル 7500.00 売上高

アーク 8000.00 売上高

Max のサラリーマンだけを部門と給与とともに表示したいと考えています。

4

2 に答える 2

0

E.FirstName を GroupBy に追加します。Select ステートメントの列は、GroupBy または別の集計で説明する必要があります。答えは、実際に表示されるエラー メッセージにあります。

于 2012-09-15T07:08:01.397 に答える
0
select E.FirstName MAX(E.Salary),D.Name from Employee as E JOIN Department As D
ON E.Department_ID = D.Department_ID
GROUP BY D.Name,E.FirstName

ロジックが進むにつれて、これは機能するはずです。それでもエラーが発生する場合。エラーを投稿してください。それ以外の場合は、出力を投稿します。

于 2012-09-15T07:21:07.810 に答える