我是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
Run Code Online (Sandbox Code Playgroud)
我想用DeptId和新列boolean创建一个新表,如果同一部门的所有员工在2010年12月1日(12月1日)之前加入并且他们的薪水应该大于8000,则返回true.所以在这种情况下,结果应该是
DeptId NewEmployees
------------------------
1 False
2 True
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?我应该自己加入吗?或者还有其他方法吗?请任何人都可以提出建议......
Jeena.
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
Run Code Online (Sandbox Code Playgroud)
请注意,我假设你的问题是12月和01.