데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
두개의 테이블로는
A, B 두개의 테이블 만 있을 때는
left outer join 으로 해서 isnull(b.cost, a.cost) 로 해서 데이터가 나오게 했었는데요.
관련된 테이블이 하나 더 생겨서....
우선순위가 C > B > A 로 되게 하고 싶습니다.
해당월에 CTable에 데이터가 있으면 C ,
해당월에 CTable에 데이터가 없고, B에 있으면 B,
해당월에 C, B 데이터가 모두 없으면 A 데이터가 나오게 하고 싶은데요.
그럼 어떻게 해야 할까요
A left outer join B left ouer join C 로 걸고...
isnull(isnull(c.cost, b.cost) , acost ) 이렇게 하면 될까요?
세개 중에 우선순위를 줘서 나오게 하는 방법이 있으면 좀 알려주세요.
ATable | BTable | CTable | |||||
YYYYMM | COST | YYYYMM | COST | YYYYMM | COST | ||
2015-01 | 150000 | 2015-01 | 150000 | ||||
2015-02 | 150000 | 2015-02 | 160000 | ||||
2015-03 | 150000 | 2015-03 | 140000 | ||||
2015-04 | 170000 | 2015-04 | 170000 | 2015-04 | 120000 | ||
2015-05 | 170000 | 2015-05 | 170000 | 2015-05 | 170000 | ||
2015-06 | 160500 | 2015-06 | 160500 | ||||
2015-07 | 150000 | 2015-07 | 150000 | ||||
2015-08 | 150000 | 2015-08 | 150000 | ||||
2015-09 | 150000 | 2015-09 | 150000 | ||||
2015-10 | 170000 | ||||||
2015-11 | 170000 | ||||||
2015-12 | 160500 |
https://msdn.microsoft.com/ko-kr/library/ms190349(v=sql.100).aspx
이걸로 한번 해보세요