쿼리문의드립니다 0 5 1,339

by DB초보자입니다 [SQL Query] [2019.11.01 13:07:03]


안녕하세요

이번에 통계를 하나 뽑아달라고하는데

2019.01~09까지 일별 데이터를 요청했는데요

원하는형태가

열 사번 직원명 2019.01.01 2019.01.02~~2019.09.30 까지 열이 되어야하는데

저많은기간을 전부 decode나 case 문으로 처리를 하려고하니 비효율적인거같아서 피벗을 찾아봤는데 상수가 아니면ㅈ안된다는 오류가 뜨더라구요 혹시 위와같은 쿼리짜실때 좋은 정보있으신가해서 문의드립니다.

감사합니다

by 우리집아찌 [2019.11.01 13:19:51]

xmlagg 함수등으로 구분자 처리해서 한번에 만들어서 프로그램에서 split 처리도 가능합니다


by jkson [2019.11.01 13:38:50]

pivot 구문이 그럴 때 편해요.

프로그램단에서 '2019.01.01','2019.01.02' ... '2019.09.30'  문자열을 만들어서 던져주고

쿼리단에서는 동적쿼리로 구현하시면 됩니다.

pivot (집계함수 for xx in (받은 문자열))


by DB초보자입니다 [2019.11.01 15:17:01]

프로그램단이 아닌 쿼리 내에서 데이터만 뽑아주려고합니다ㅠㅠ일회성이라서ㅠㅠ


by 모래가흙흙 [2019.11.01 19:52:49]

가공되지 않은 데이터 추출 후, 엑셀에서 피벗으로 만들어주면 안되나요


by 마농 [2019.11.04 08:49:25]

막연하게 비효율일것 같다 라고 생각하지 마세요.
쓸데 없이 사용한다면 비효율이겠지만
필요에 의해서 사용한다면 비효율이라고 볼 수 없죠.
SUM(DECODE 방법도 있고, PIVOT 방법도 있습니다.
다만, 진짜 꼭 필요한가? 가 의문이네요.
애초에 결과 포멧을 다르게 해야 하지 않을까? 생각됩니다.
이 포멧이 꼭 필요하다면 할 수 밖에 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입