안녕하세요!
10시간 째 이 문제 때문에 다른것도 진행 못하고 끙끙 대네요 ㅠ.ㅠ
제가 하고 싶은건
A테이블 | B테이블 | ||||||||
A.PK | NAME | FLUG | B.PK | A.PK | NAME | HH | OO | DATE | |
1 | 서울 | 0 | 1 | 1 | 서울 | 11.2 | 13.3 | 2008-10-10 | |
2 | 경기 | 0 | 2 | 1 | 서울 | 12.4 | 13.4 | 2008-10-09 | |
3 | 울산 | 0 | 3 | 3 | 울산 | 12.5 | 15.6 | 2008-10-10 | |
4 | 포항 | 0 | 4 | 3 | 울산 | 15.3 | 14.5 | 2008-10-10 | |
5 | 대구 | 0 | 5 | 5 | 대구 | 13.6 | 16.7 | 2008-10-11 | |
6 | 부산 | 0 | 6 | 5 | 대구 | 16.7 | 17.7 | 2008-10-10 | |
7 | 제주 | 1 | 7 | 5 | 대구 | 16.5 | 12.7 | 2008-10-09 | |
A 테이블에 PK 가 10개면 10개만 출력되야 해요. 3개면 3개만...
그럼 A 와 B 테이블을 조인을 하였을 때
B 테이블에서 A 테이블 PK 가 1 인 레코드가 2개 이자나요.. 그 중에 가장 최근에 등록된 것 1개만 출력하는거예요..A테이블 플러그가 0인것만 허용... 1이면 걍 넘어 가구요..
그럼 출력 예상이..
1 서울 0 1 1 서울 11.2 13.3 2008-10-10
2 경기 0 NULL NULL NULL NULL NULL NULL
3 울산 0 3 3 울산 12.5 15.6 2008-10-10
4 포항 0 NULL NULL NULL NULL NULL NULL
5 대구 0 5 5 대구 13.6 16.7 2008-10-11
6 부산 0 NULL NULL NULL NULL NULL NULL
여기까지 출력 예상 이구요..
쿼리문은 ..
select * from A테이블 a, ( select * from ( select B테이블PK, B.NAME,B.HH,B.OO from B테이블 b where 1=1 and rowid in (select max(rowid) from B테이블 group by B테이블PK) )) b where a.pk = b.pk(+) and a.flug !=1 order by a.pk desc
이렇게 했더니 제가 원하는 대로 나오긴 나오는데 문제는...
최근 값이 안나오고 예전 값이 나와요..ㅠㅠ
저의 한계 입니다 ㅠ.ㅠ 도움의 손길을 ㅠ.ㅠ