检查多个记录是否存在值并获取一条记录

时间:2016-10-05 02:21:35

标签: sql-server

我有两张桌子。部门如下

ID  DName
1   IT
2   HR
3   Admin

员工如下

id  fname   departmentid
1   Mary    2
2   Rahul   2
3   Amit    3
4   Vivek   1
5   Preetam 1
6   Mangesh 1
7   Mary    1

观察员工表中有两条Mary(id 1和7)记录。现在我想得到员工姓名的结果以及是否在人力资源部门工作。预期产出如下。

fname   WorksInHR
Mary    Y
Rahul   Y
Amit    N
Vivek   N
Preetam N
Mangesh n

我如何在SQL2012中实现这一目标?

1 个答案:

答案 0 :(得分:0)

以下是执行此操作的一种方法:

select e.fname,
       (case when sum(case when d.dname = 'HR' then 1 else 0 end) > 0
             then 'Y' else 'N'
        end) as WorksInHR
from employee e join
     department d
     on e.departmentid = d.id
group by e.fname;