일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- MS
- DataGrid
- windows
- 마이크로소프트
- 윈도우
- ASP
- 자바스크립트
- SSRS
- CONVERT()
- replace()
- microsoft
- attr()
- c#
- 엑셀
- aspnet
- 오라클
- MSSQL
- oracle
- IIS
- jQuery
- 비주얼스튜디오
- Excel
- javascript
- 프로시저
- 단축키
- 리포팅서비스
- 윈폼
- 태그를 입력해 주세요.
- Winform
- 이클립스
Archives
- Today
- Total
DJ메탈짱™의 Free Style
[MS-SQL] Pivot, MS-SQL 2005 이상 본문
|
|
WITH summary AS (
SELECT
캠페인번호,
YEAR(캠페인시작일) AS YYYY,
cast(MONTH(캠페인시작일) as varchar) AS MM
FROM 캠페인정보
WHERE YEAR(캠페인시작일) LIKE LEFT(@캠페인시작일,4)+'%'
)
SELECT
YYYY AS 년도
, [01] AS '01월', [02] AS '02월', [03] AS '03월', [04] AS '04월'
, [05] AS '05월', [06] AS '06월', [07] AS '07월', [08] AS '08월'
, [09] AS '09월', [10] AS '10월', [11] AS '11월', [12] AS '12월'
FROM summary
PIVOT(
COUNT(캠페인번호) FOR MM IN([01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12])
) PVT
UNION 쿼리 열심히 만들어서 마지막에 감싸서 SUM하던 노가다를 확실하게 줄여주는 SQL2005 이상 버전부터 나온 PIVOT에 대해 작성해봤습니다.
위의 PIVOT 기능 사용하기 위해서는 SQL2000에서는 지원이 안되다보니
데이터베이스의 호환성 수준을 SQL2005 이상으로 설정해주셔야 합니다.
SQL2008의 경우 데이터베이스 속성 > 옵션 > 호환성 수준 SQL Server 2008(100) 으로 설정해주시면 됩니다.
'일(job) > DBMS' 카테고리의 다른 글
[MS-SQL] 숫자에 콤마(,) 붙이기 #함수 #FUNCTION (0) | 2016.01.15 |
---|---|
[MS-SQL] ORACLE 연결된 서버 (linked Server) 오류:7302 (0) | 2016.01.15 |
[MS-SQL] 해당테이블의 identity seed 정보 확인. #DBCC #CHECKIDENT() #NORESEED (0) | 2016.01.15 |
[MS-SQL] 데이터베이스 백업 스케줄 설정 (SQL 에이전트) #BACKUP #DATABASE #REPLACE() #CONVERT() (0) | 2016.01.15 |
[MS-SQL] 오늘에 해당되는 월의 시작일 구하기 #DATEADD #CONVERT #DAY (0) | 2016.01.15 |