2014-12-05 115 views
0

作爲作業的一部分,我需要看看在表中兩個給定的講座是否有相同的老師。比較表中的兩行

表由

lectureNr | nameOfTheLecture | hoursInWeek | professorID 

我做了assingment,原因很複雜,但我只知道做這種方式:

select distinct ( 
     case when 
     (select professorID from vorlesungen where nameOfTheLecture like 'Logik')= 
     (select professorID from vorlesungen where nameOfTheLecture like 'Erkenntnistheorie') 
     then 'yes' else 'no' end) 
from vorlesungen; 

任何人可以sugest我這個美好的solutiuon 。

感謝

回答

2
select count(distinct professorID) as prof_count 
from vorlesungen 
where nameOfTheLecture in ('Logik','Erkenntnistheorie') 

如果計數大於1那麼他們是不是同一個。

+1

簡單和elegenat,謝謝 – depecheSoul 2014-12-05 11:48:13

1

您可以使用ANALYTIC函數ROW_NUMBER

with data as(
select lectureNr, 
     nameOfTheLecture, 
     hoursInWeek, 
     professorID, 
     row_number() over(partition by professorID order by professorID, nameOfTheLecture) rn 
from vorlesungen 
where nameOfTheLecture in ('Logik','Erkenntnistheorie') 
) 
select * from data 
where rn > 1 
/