월별 사용 횟수를 뽑으려 합니다. 0 1 1,336

by 광훨 [PL/SQL] [2013.10.18 10:42:41]


장비 배출일자 배출량
1111 20130105 100
1111 20130304 200
2222 20130601 300
3333 20130701 400
3333 20130708 500
4444 20130630 600
1111 20130321 700
2222 20130308 800

위의 데이터를 아래와 같이 월별로 사용 횟수를 뽑아내고 싶습니다.

도와주시면 감사하겠습니다.


장비 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
1111 1 - 2 - - - - - - - - -
2222 - - 1 - - 1 - - - - - -
3333 - - - - - - 2 - - - - -
4444 - - - - - 1 - - - - - -


- 는 0 대신 적은겁니다. 혼동 안하셨으면...ㅎㅎ;;
by 우리집아찌 [2013.10.18 11:17:36]
WITH T ( EQ , DT , VAL ) AS (
SELECT '1111' ,'20130105' ,'100' FROM DUAL UNION ALL
SELECT '1111' ,'20130304' ,'200' FROM DUAL UNION ALL
SELECT '2222' ,'20130601' ,'300' FROM DUAL UNION ALL
SELECT '3333' ,'20130701' ,'400' FROM DUAL UNION ALL
SELECT '3333' ,'20130708' ,'500' FROM DUAL UNION ALL
SELECT '4444' ,'20130630' ,'600' FROM DUAL UNION ALL
SELECT '1111' ,'20130321' ,'700' FROM DUAL UNION ALL
SELECT '2222' ,'20130308' ,'800' FROM DUAL 
) 
SELECT EQ
   ,COUNT(DECODE(MM,'01',1)) "1월"
   ,COUNT(DECODE(MM,'02',1)) "2월"
   ,COUNT(DECODE(MM,'03',1)) "3월"
   ,COUNT(DECODE(MM,'04',1)) "4월"
   ,COUNT(DECODE(MM,'05',1)) "5월"
   ,COUNT(DECODE(MM,'06',1)) "6월"
   ,COUNT(DECODE(MM,'07',1)) "7월"
   ,COUNT(DECODE(MM,'08',1)) "8월"
   ,COUNT(DECODE(MM,'09',1)) "9월"
   ,COUNT(DECODE(MM,'10',1)) "10월"
   ,COUNT(DECODE(MM,'11',1)) "11월"
   ,COUNT(DECODE(MM,'12',1)) "12월"
FROM 
(SELECT EQ , SUBSTR(DT,5,2) MM , VAL FROM T
 WHERE DT LIKE '2013%' )a 
GROUP BY EQ
ORDER BY EQ
 
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입