我对sql很新,我正在努力创建一个查询。我有一张桌子Dept_Employee
DeptId EmployeeId Salary JoinDate (DD-MM-YYYY)
------------------------------------------------------------
1 77 8787 11-09-2010
1 87 9877 12-08-2011
1 76 9544 08-11-2010
2 33 9999 12-05-2010
我想用DeptId和新列boolean创建一个新表,如果同一部门的所有员工在2010年12月1日(12月1日)之前加入并且他们的薪水应该大于8000.所以在这种情况下结果应该是
DeptId NewEmployees
------------------------
1 False
2 True
最好的方法是什么?我应该自己加入吗?或者还有其他方法吗?请任何人都可以提出建议......
Jeena。
答案 0 :(得分:5)
SQL CASE
是您的朋友。
您可以通过以下方式执行此操作:
SELECT DeptId, CASE WHEN MIN(Salary) > 8000 AND MAX(JoinDate) <= DATE'2010-12-01' THEN True
ELSE FALSE
END AS NewEmployees
FROM Dept_Employee
GROUP BY DeptId
请注意,我假设你的问题是12个月和01天。