데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
* CODE_NAME 컬럼이 많은 두번째를 중심으로 신문컬럼 옆에 방송컬럼이 나오게 하고싶어요
그리고 두번째 코드네임이 없는 신문은 NULL값으로 나오면 될것같아요.. 또 합계 컬럼 까지 나오면 더 좋을것같아요
맨위에 조인문으로 돌리니까 안맞더라구요 ㅜ
Comment 3
-
kk
2014.06.19 10:08
-
DECLARE @A TABLE (CODE_NAME NVARCHAR(10), 신문 INT)DECLARE @B TABLE (CODE_NAME NVARCHAR(10), 방송 INT)INSERT @ASELECT '거래중지', 3 UNIONSELECT '예금부족', 2834 UNIONSELECT '자동납부미신청', 15 UNIONSELECT '자동납부해지', 1INSERT @BSELECT '거래중지', 11 UNIONSELECT '기타오류', 14 UNIONSELECT '납부자번호불일치', 2 UNIONSELECT '납부자해지', 25 UNIONSELECT '무거래', 76 UNIONSELECT '법적지급제한', 12 UNIONSELECT '예금부족', 1673 UNIONSELECT '자동납부미신청', 55 UNIONSELECT '자동납부해지', 20SELECT CODE_NAME = ISNULL(A.CODE_NAME, B.CODE_NAME), 신문 = ISNULL(A.신문, 0), 방송 = ISNULL(B.방송, 0)FROM @A A FULL OUTER JOIN@B B ON A.CODE_NAME = B.CODE_NAME
-
항해자™
2014.06.21 11:13
여기서는 left outer join으로 풀든지 위아래 테이블 위치만 바꾸면 되뎄네요,, full join은 원하지
않는 결과가 나올 수 있습니다,,
밑에 2개 구문을 right join으로 묶으시면 될거 같은데요.
select *
from ( 위쿼리 ) as a
right join ( 아래쿼리 ) as b
on a.code_name = b.code_name
order by code_name