初学者sql连接查询

时间:2013-02-11 12:41:46

标签: sql

我对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。

1 个答案:

答案 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天。