为了减少混乱,我正在创建一个新问题,因为我不知道是否应该更新上一个问题。所以这里的问题在于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
我想用这个DeptId
和一个新的布尔列创建一个新表,如果同一部门的所有员工在joindate
2010 年 1 月 12 日(12 月 1 日)之前的工资应该大于 8000 并且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
但我得到了例外
不是 GROUP BY 表达式
请任何人都可以建议正确的方法是什么?我应该以某种方式创建子查询还是什么???
吉娜。