2016-10-05 76 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