안녕하세요.
쿼리가 막히니 또 문을 두드리게 되네요. ^^;;
자료 찾아서 이것저것 해봤는데 마음은 급하고 해서 문의 드립니다.
MS-SQL 2000 입니다.
내용) 월별, 요일별, 시간별을 입장현황을 가로로 출력하고 싶은데요.
1. 월별 , 요일별 세로로는 출력됩니다. 조금 더 추가하면 가로로 될것 같은데... 방법좀 알려주세요.
회원입장 테이블 횡원번호 입장일자 코드 입장시간
R9_FCRM ( R9_APNO VARCHAR(3) , R9_INDA VARCHAR(8) , R9_CODE VARCHAR(2) , R9_INTI VARCHAR(6) )
INSERT INTO R9_FCRM ( 'M01' , '20130101' , '10' , '060101' )
INSERT INTO R9_FCRM ( 'M01' , '20130102' , '20' , '070101' )
INSERT INTO R9_FCRM ( 'M01' , '20130103' , '30' , '080101' )
INSERT INTO R9_FCRM ( 'M02' , '20130104' , '40' , '060101' )
INSERT INTO R9_FCRM ( 'M02' , '20130105' , '50' , '070101' )
INSERT INTO R9_FCRM ( 'M02' , '20130206' , '10' , '080101' )
INSERT INTO R9_FCRM ( 'M03' , '20130207' , '10' , '190101' )
INSERT INTO R9_FCRM ( 'M03' , '20130308' , '20' , '101011' )
INSERT INTO R9_FCRM ( 'M03' , '20130309' , '30' , '160101' )
INSERT INTO R9_FCRM ( 'M04' , '20130410' , '30' , '150101' )
INSERT INTO R9_FCRM ( 'M04' , '20130411' , '11' , '130101' )
SELECT
GG = DATEPART ( MM , R9_INDA )
, DT = DATENAME ( DW , R9_INDA )
, MM = COUNT ( R9_APNO )
FROM
R89_FCRM
WHERE
R9_INDA BETWEEN '20120101' AND '20120430'
AND
R9_CODE IN ( '10' , '20' , '30' , '50' , '11' )
GROUP BY
DATEPART ( MM , R9_INDA )
, DATENAME ( DW , R9_INDA )
ORDER BY
GG , DT
결과
월 요일 건수 (참고-보시기 힘들것 같아서... ^^)
1 월 0
1 화 1 1월 1일
1 수 1 1월 2일
1 목 1 1월 3일
1 금 0
1 토 1 1월 5일
1 일 0
2 월 0
2 화 0
2 수 1 2월 6일
2 목 1 2월 7일
2 금 0
2 토 0
2 일 0
3 월 0
3 화 0
3 수 0
3 목 0
3 금 1 3월 8일
3 토 1 3월 9일
3 일 0
4 월 0
4 화 0
4 수 1 4월 10일
4 목 1 4월 11일
4 금 0
4 토 0
4 일 0
이렇게 하면 세로로는 출력되는데요.
가로로 출력할 수 있을까요? (시간까지는 못했구요... 월별, 요일별까지만 위쿼리로 처리함)
Comment 1
-
세상에밝음을
2013.06.28 13:09
문의하신 내용을 이해하기가 좀 어렵네요..
간단하게 세로로 들어가 있는 열을 가로로 푸는 방법은 아래와 같이 하시면 됩니다.
(단 가로로 풀어야 하는 항목이 정해져 있다고 가정)
테이블
입장월, 일, 요일
1 1 월
1 2 화
1 4 목
1 9 화
2 6 토
2 10 수
..
select 입장월, sum(case when 요일 ='월' then 1 else 0 end ) as 월,
sum(case when 요일 ='화' then 1 else 0 end ) as 화.
...
from table
group by 입장월
입장월 월 화 수 목 금 토 일
1 1 2 0 1 0 0 0
2 0 0 1 0 0 1 0
이걸 참고로 응용하시면 될 것 같습니다.
이 답변이 도움이 되실지...