데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
이번에 쿼리한개 짤게 있는데 2틀째 고생을 하고있네요.. 조언좀 부탁드릴께요!
테이블 A
컬럼:TimeIdx, Date, AmPm
row 형식:
1 2014-10-01 17:58:00 PM
2 2014-10-01 17:58:00 AM
3 2014-10-02 17:58:00 PM
4 2014-10-02 17:58:00 AM
한달치 데이터가 AM, PM 으로 구분되어 들어갑니다.
테이블 B
컬럼: bIdx, prdCode
row 형식:
3 701071-13001
4 701071-13002
테이블 C
컬럼:bIdx,TimeIdx, Type, Quamtity
row 형식:
3 1 0010 100
3 1 0020 200
3 1 0030 300
4 1 0010 1000
4 1 0020 2000
4 1 0030 3000
이런식으로 A 테이블에는 TimeIdx 키, B 테이블에는 bIdx 가 키로 연결 되어있습니다.
결과물은 아래 표처럼 출력 되어야 합니다.
피벗, rollup 으로 해결 될 줄 알고 2틀 동안 다해봤지만 안되서 도움 요청 드립니다.
조언 부탁드릴꼐요!!!!!!!!!!
Comment 1
-
건우아빠
2014.10.16 08:52
pivot 또는 case when으로 분리하셔도 됩니다.
rollup 보다는 GROUPING_ID , GROUPING SETS 을 이용하시는게 원하는 값을 표현한기 쉽고 정렬을 통해 합계를 아래쪽으로 표현할수 있습니다.
문제는 조회월이 다르기 때문에 매번 컬럼명, 해당 조건이 달라져야 하는 문제가 있어서 동적 쿼리로 하셔야 할듯 합니다.
컬럼명을 고정된 형태로 간다면 표현하는 어플단에서 처리를 하면 고정형태의 쿼리나 프로시저로 가능할듯 합니다.