Попробуйте что-то вроде этого:
Вот SQL Fiddle
--test установки данных:
CREATE TABLE #emptable (cause varchar(20), emp1 varchar(20), emp2 varchar(20), rating int)
INSERT INTO #emptable (cause, emp1, emp2, rating) VALUES('C1', 'emp A', 'emp B', 5)
INSERT INTO #emptable (cause, emp1, emp2, rating) VALUES('C1', 'emp B', 'emp A', 5)
--INSERT INTO #emptable (cause, emp1, emp2, rating) VALUES('C1', 'emp A', 'emp B', 3)
INSERT INTO #emptable (cause, emp1, emp2, rating) VALUES('C1', 'emp A', 'emp C', 5)
INSERT INTO #emptable (cause, emp1, emp2, rating) VALUES('C2', 'emp C', 'emp A', 2)
INSERT INTO #emptable (cause, emp1, emp2, rating) VALUES('C2', 'emp D', 'emp A', 3)
INSERT INTO #emptable (cause, emp1, emp2, rating) VALUES('C3', 'emp A', 'emp D', 5)
--INSERT INTO #emptable (cause, emp1, emp2, rating) VALUES('C1', 'emp B', 'emp A', 3)
--query
SELECT E1.emp1, E1.emp2
FROM #emptable E1
INNER JOIN #emptable E2
ON E1.emp1 = E2.emp2
AND E2.emp1 = E1.emp2
AND E1.cause = E2.cause
GROUP BY E1.emp1, E1.emp2
HAVING MIN(E1.rating)=5
AND MIN(E2.rating)=5
DROP TABLE #emptable
--results
emp1 emp2
emp A emp B
emp B emp A
данные примера помогут! –
вы что-то пробовали ???? –
Какая СУБД вы используете? Oracle? Postgres? DB2? –