2014-02-22 3 views
0

이 문제를 해결하기 위해 노력하고 있지만 매우 멀리 갈 수 없습니다.SQL 데이터 비교 쌍

질문 :

"이름의 쌍 (NAME1 및 NAME2로 이름을 변경) NAME2와 같은 영화의 각 NAME1이 작용하지만, 필름의 역할을했다 더 많은 임금을 받고 있습니다 곳을 찾을 수 있습니다."

행동했다에 대한 표는 다음과 같습니다

 
ActedIn (name:varchar, title:varchar, year:int, pay:real) 

내 쿼리는 지금까지입니다 :

SELECT B.name FROM ActedIn B WHERE B.title IN (
SELECT A.title FROM ActedIn A GROUP BY A.title HAVING COUNT(*) = 2); 

이 반환 : 제목없이 (미세 인 열을 지불 - 나는 그냥 볼 수 있도록 포함 시켰습니다)

+---------------+--------------+ 
| name | title | EXAMPLE PAY | 
+------+--------+--------------+ 
| Dino | movie1 | 500.25  | 
+------+--------+--------------+ 
| Miro | movie1 | 40.15  | 
+------+--------+--------------+ 
| Tino | movie2 | 90.15  | 
+------+--------+--------------+ 
| Kiko | movie2 | 3422.24  | 
+------+--------+--------------+ 
| Bino | movie3 | 653.00  | 
+------+--------+--------------+ 
| Kiko | movie3 | 245.52  | 
+------+--------+--------------+ 

이제 각 영화 제목의 배우 쌍을 어떻게 든 비교하고 actor1이 actor2보다 더 많은 보수를받는 쌍만 반환해야합니다. 제가 위에서 제공 한 경우

의 결과는 쿼리가 될 것이라고 말했다 :

Dino, Miro in Movie1 
Bino, Kiko in Movie3 

감사합니다!

답변

2
select x.name as name1, y.name as name2, x.title as movie 
from actedin x join actedin y on x.title = y.title 
where x.example_pay > y.example_pay 
+0

가입 키워드 –

+0

을 사용하도록 변경되었습니다. 내 문제가 해결되었습니다. – Borovez