2016-10-05 71 views
0

我有两个tables.Department如下检查值多个记录的存在,并得到一个记录

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 

观察,有两个记录玛丽(ID 1和7)在员工表中。现在我想要获得员工姓名的结果以及是否在人力资源部门工作。预期的输出如下。

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

我如何在SQL2012中实现这个功能?

回答

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; 
+0

感谢。但它给了玛丽两个记录。 – Prabi

+0

@Prabi。 。 。我不确定我在想什么。我只是修复了答案。 –

+0

我不确定,但它说coalesce附近的语法错误。你确定它的工作在你的最后?或者我做错了什么? – Prabi