実際、この質問は私の 初心者のSQL結合クエリのフォローアップです
混乱を少なくするために、前の質問を更新する必要があるかどうかわからないため、新しい質問を作成しています。したがって、ここでの問題はGROUP BY
機能にあります。
私はテーブルを持っていますDept_Employee
DeptId EmployeeId Salary JoinDate (DD-MM-YYYY) DeptName
--------------------------------------------------------------------------
1 77 8787 11-09-2010 ADMIN
1 87 9877 12-08-2010 ADMIN
1 76 9544 08-11-2010 SUPPORT
2 33 9999 12-05-2010 ADMIN
そして、これから新しいテーブルを作成し、同じ部門のすべての従業員が2010年1月12日(12月1日)より前で、給与が8000以上でDeptId
ある場合にtrueを返す新しいブール列を作成します。joindate
DeptName="Admin"
したがって、この場合、結果は次のようになります。
DeptId NewEmployees
------------------------
1 False
2 True
私はこのようなことを試みました
SELECT DeptId,
CASE WHEN MIN(Salary) > 8000 AND
MAX(JoinDate) <= DATE'2010-12-01' And
DeptName ="Admin" THEN True
ELSE FALSE
END AS NewEmployees
FROM Dept_Employee
GROUP BY DeptId
しかし、私は例外を得ています
GROUPBY式ではありません
誰かが正しい方法を提案できますか?どういうわけかサブクエリを作成する必要がありますか?
ジーナ。