검색조건인 연도를 동적으로 표시하는 쿼리 질문드립니다 0 1 165

by 아이언조 [SQL Query] ORACLE Tibero SQL DataBase DBA [2019.04.12 15:06:15]


q1.PNG (8,199Bytes)
q3.PNG (9,412Bytes)

 

연도별로

기간: [시작연도] ~ [종료연도] 를 입력해서 

첨부된 이미지 처럼 검색조건에 따른 연도를 출력하는 쿼리를 짜려고합니다

ex 2010 ~ 2019 년까지 검색시

          2010 2011 2012 2013 2014 2015 2016 2017 2018 2019

데이터   값    값     값     값     값    값    값     값    값    값

어떻게 해야 가능한지 알려주시면 감사하겠습니다.

동적피벗을 사용하는건지 모르겠는데 저렇게 구현을 하고싶은데 구현할수있는 방법을 모르겠네요..

by 마농 [2019.04.12 15:45:15]
-- 다음과 같은 쿼리를 동적으로 구현하세요.
SELECT NVL(gb, '계') gb
     , COUNT(DECODE(yyyy, '2001', 1)) "2001"
     , COUNT(DECODE(yyyy, '2002', 1)) "2002"
     , COUNT(DECODE(yyyy, '2003', 1)) "2003"
     , COUNT(DECODE(yyyy, '2004', 1)) "2004"
     , COUNT(DECODE(yyyy, '2005', 1)) "2005"
     , COUNT(DECODE(yyyy, '2006', 1)) "2006"
  FROM t a
 WHERE 1=1
   AND grade_cd = '1'                 -- 감염등급코드
   AND type_cd  = '001'               -- 감염병코드
   AND yyyy BETWEEN '2001' AND '2006' -- 조회기간
 GROUP BY ROLLUP(gb)
 ORDER BY a.gb NULLS FIRST
;

 

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