조인관련 질문입니다. 0 16 1,121

by 이동원 [2007.11.29 12:10:24]


안녕하십니까. 조인 관련으로 질문 드립니다.. ㅠ.ㅠ

아 쿼리 날리고 수정을 해봐도 계속 틀리기만 하고.. ㅠ.ㅠ 좌절의 연속이네...

다시 한번 문을 뚜드리게 되었습니다.

 

SELECT daytime, post_no, user_id
, SUM(cnt1) as 기업연계, SUM(cnt2) as 기업신규, SUM(cnt3)as 개인연계,SUM(cnt4)as 개인신규 ,SUM(cnt5) as 국명체결등기건수 
FROM
(
SELECT SUBSTR(daytime,1,8) daytime, post_no, user_id
, COUNT(DISTINCT regino) cnt1, 0 cnt2, 0 cnt3,0 cnt4,0 cnt5
FROM log_aba3
WHERE daytime > '20070831'
AND daytime < '20071001'
AND result = 0
GROUP BY SUBSTR(daytime,1,8), post_no, user_id
UNION ALL
SELECT SUBSTR(daytime,1,8) ymd, post_no, user_id
, 0 cnt1, COUNT(DISTINCT regino) cnt2, 0 cnt3,0 cnt4,0 cnt5
FROM log_abb2
WHERE daytime > '20070831'
AND daytime < '20071001'
AND result = 0
GROUP BY SUBSTR(daytime,1,8), post_no, user_id
UNION ALL
SELECT SUBSTR(daytime,1,8) daytime, post_no, user_id
, 0 cnt1, 0 cnt2, COUNT(DISTINCT regino) cnt3,0 cnt4,0 cnt5
FROM log_aca4
WHERE daytime > '20070831'
AND daytime < '20071001'
AND result = 0
GROUP BY SUBSTR(daytime,1,8), post_no, user_id
UNION ALL
SELECT SUBSTR(daytime,1,8) daytime, post_no, user_id
, 0 cnt1, 0 cnt2,0 cnt3,COUNT(DISTINCT regino) cnt4,0 cnt5
FROM log_acb2
WHERE daytime > '20070831'
AND daytime < '20071001'
AND result = 0
GROUP BY SUBSTR(daytime,1,8), post_no, user_id
UNION ALL
SELECT SUBSTR(daytime,1,8) daytime, post_no, user_id
, 0 cnt1, 0 cnt2, 0 cnt3,0 cnt4,COUNT(DISTINCT regino) cnt5
FROM log_abc1
WHERE daytime > '20070831'
AND daytime < '20071001'
AND result = 0
GROUP BY SUBSTR(daytime,1,8), post_no, user_id
)
GROUP BY daytime, post_no, user_id
order by daytime

 

지금 이런 쿼리를 돌려 결과가 나오는 통계를 구현하였습니다.

하지만 클라이언트의 요구로 post_no 번호만 나오는 부분에 그 이름까지 나오는 부분까지 함께 나타나게 해야하는 상황입니다.

 

wj_regipo란 테이블에 pocd컬럼 ponm컬럼이 있고

위 각 테이블의 post_no = pocd가 같은 값을 가지고 있으며 ponm은 pocd에 대한 해당관할서를 나타나있습니다.

조인을 해서 ??길려고 수차례 시도를 하였으나 위 커리문도 재대로 이해를 못하는 상황에서 join을 할려니 도저히 무리군요.

 

 

상단 쿼리를 돌리면 결과값은 아래와 같고

날짜
기호
PDA번호
기업연계등록
기업신규등록
개인연계등록
개인신규등록
국명체결등기건수
20071101
10140
01091340722
0
197
0
0
0
20071102
10024
01091348064
0
76
0
0
76
20071102
10122
01053830036
0
47
0
0
0
20071105
10122
01053830036
0
384
0
0
0

 

 

아래와같이 결과가 나와야합니다.

날짜
기호
PDA번호
기업연계등록
기업신규등록
개인연계등록
개인신규등록
국명체결등기건수
20071101
10140(서울광진)
01091340722
0
197
0
0
0
20071102
10024(서울신림)
01091348064
0
76
0
0
76
20071102
10122(서울봉천)
01053830036
0
47
0
0
0
20071105
10122(서울봉천)
01053830036
0
384
0
0
0

 

위 그림은 jsp로 작업한 화면입니다.

 

도움 부탁드리겠습니다...

 

by 채용근 [2007.11.29 00:00:00]
위 SELECT 절에 스칼라 뷰로 구현하심이.

( SELECT PONM wj_regipo FROM A.post_no = pocd )

하단 GROUP BY 전에 알리아싱 A 주시구여

by 이동원 [2007.11.29 00:00:00]
쿼리를 어디다가 넣어야할지...ㅠ.ㅠ

by 채용근 [2007.11.29 00:00:00]
SELECT daytime, post_no||( SELECT PONM wj_regipo FROM A.post_no = pocd ) ,
user_id
, SUM(cnt1) as 기업연계, SUM(cnt2) as 기업신규, SUM(cnt3)as 개인연계,SUM(cnt4)as 개인신규 ,SUM(cnt5) as 국명체결등기건수
FROM
(
SELECT SUBSTR(daytime,1,8) daytime, post_no, user_id
, COUNT(DISTINCT regino) cnt1, 0 cnt2, 0 cnt3,0 cnt4,0 cnt5
FROM log_aba3
WHERE daytime > '20070831'
AND daytime < '20071001'
AND result = 0
GROUP BY SUBSTR(daytime,1,8), post_no, user_id
UNION ALL
SELECT SUBSTR(daytime,1,8) ymd, post_no, user_id
, 0 cnt1, COUNT(DISTINCT regino) cnt2, 0 cnt3,0 cnt4,0 cnt5
FROM log_abb2
WHERE daytime > '20070831'
AND daytime < '20071001'
AND result = 0
GROUP BY SUBSTR(daytime,1,8), post_no, user_id
UNION ALL
SELECT SUBSTR(daytime,1,8) daytime, post_no, user_id
, 0 cnt1, 0 cnt2, COUNT(DISTINCT regino) cnt3,0 cnt4,0 cnt5
FROM log_aca4
WHERE daytime > '20070831'
AND daytime < '20071001'
AND result = 0
GROUP BY SUBSTR(daytime,1,8), post_no, user_id
UNION ALL
SELECT SUBSTR(daytime,1,8) daytime, post_no, user_id
, 0 cnt1, 0 cnt2,0 cnt3,COUNT(DISTINCT regino) cnt4,0 cnt5
FROM log_acb2
WHERE daytime > '20070831'
AND daytime < '20071001'
AND result = 0
GROUP BY SUBSTR(daytime,1,8), post_no, user_id
UNION ALL
SELECT SUBSTR(daytime,1,8) daytime, post_no, user_id
, 0 cnt1, 0 cnt2, 0 cnt3,0 cnt4,COUNT(DISTINCT regino) cnt5
FROM log_abc1
WHERE daytime > '20070831'
AND daytime < '20071001'
AND result = 0
GROUP BY SUBSTR(daytime,1,8), post_no, user_id
) A
GROUP BY daytime, post_no, user_id
order by daytime

by 이동원 [2007.11.29 00:00:00]
ORA-00907: missing right parenthesis

이러고 뜨네요 ㅠ.ㅠ

by finecomp [2007.11.29 00:00:00]
이 정도 수정은 직접 해보셔야 하지 않을까요?
FROM 앞뒤로 약간 실수가 있는 정도인데...ㅡ.ㅡ;

post_no || ( SELECT '(' || PONM || ')' FROM wj_regipo A.post_no = pocd )

건승하시길...수고하세요~~

by finecomp [2007.11.29 00:00:00]
WHERE도 빠져있군요...;

by 이동원 [2007.11.29 00:00:00]
ORA-00907: missing right parenthesis
SELECT daytime, post_no||( SELECT PONM wj_regipo FROM A.post_no = pocd ) 이부분중 From !A!.post_no
A부분에 잘못되따고... 에라가 뜨네요...
에고.... 죄송합니다..

by 이동원 [2007.11.29 00:00:00]
where문이 빠져 있다는 말씀. 잘 이해가 되지가 않네요 ㅠ.ㅠ

by 마농 [2007.11.29 00:00:00]
헐~ 질문하시기 전에 기초부터 공부하셔야 할듯
(SELECT ponm FROM wj_regipo WHERE A.post_no = pocd)

by 이동원 [2007.11.29 00:00:00]
무작정 긴 쿼리만 보면 겁부터 팍 난다고나해야하나요..
-_-; 아.... 쪽팔리네요. 도움 정말 감사합니다.

by 채용근 [2007.11.29 00:00:00]
정신이 없어서 막적었더니 쿼리를 제가 희안하게 드렸네요 -_-;

by 이동원 [2007.11.29 00:00:00]
다시한번 뼈저리게 느끼네요... 쿼리공부좀 날잡아서 빡시게 해야할듯합니다... 간단한 쇼핑몰이라던지 홈페이지나 서버쪽프로그램만 만들다보니 쿼리문에 대한 등한시 했었네요. 바쁘신데 질타와 정보감사합니다.

by finecomp [2007.11.29 00:00:00]
격무(?) 중에 짬을 내서 글을 쓰다 보니...
저는 늘 실수잖아요...;

SQL...어려워하면 너무나 어렵고 RDB의 데이터연결 원리만 정확히 알아도 쉬울 수 있습니다.
질문자 분 화이팅하시길...^^;

by 채용근 [2007.11.29 00:00:00]
내일이 프로젝트 마지막이군요. 몇일째 계속 격무 ㅎㅎ 드뎌 휴가 갑니다 -_- 입사이후 첨휴가 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

by 범정 [2007.11.29 00:00:00]
용근님 추카추카!!

by 채용근 [2007.11.29 00:00:00]
감사!!!! 일주일뒤에 뵙겠습니다. ~~
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입