database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
ㆍSybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Sybase Q&A 4028 게시물 읽기
No. 4028
피벗, 프로시져 질문입니다..ㅠ
작성자
레이(reikop)
작성일
2010-05-05 21:15
조회수
8,305

DB는 SYBASE 12버전 ASE입니다.


 
피벗 테이블을 위해서 프로시저를 짜고 있습니다.
A Table
---------------------------
  year   month    value
---------------------------
2010     1            10
2010     2            20
2010     4             1
2010     5            0.2
2010     6             40

 
이 데이터를 가지고 

 
------------------------------------------
2010.01   2010.02   2010.04   2010.05  2010.06
------------------------------------------
10           20                 1             0.2         40
------------------------------------------

 
이렇게 피벗형태로 나오게 작성하려 합니다.
피벗형태로 바꿔주는 방법이 없어서 프로시져로 처리하려고 합니다.

 
월의 해당하는 데이터는 없을때도 있습니다. (2월에서 4월로 넘어간다던지)
1차로 처음의 (조건으로 만들어진)쿼리문을 호출해서 하나의 row마다 밑에 붉은 부분을 동적으로 만들어주고 나중에 excute하려고 합니다만 그 문법과 방법을 잘 모르겠습니다.

 
while문을 사용해서 붉은 부분을 동적으로 표현해 주고 싶습니다.

 
좋은방법이 있으면 답변 부탁드립니다 
이 글에 대한 댓글이 총 1건 있습니다.

저도 한때 고민했던 문제인데요.

정답이라고 하긴 그렇지만 나름 방법은 찾았는데 좀 복잡합니다.

필드수가 적다면 case문으로 하면 되지만 그 필드가 수십개가 된다면 해결책이 되진 않지요

님도 연도가 늘어나면 필드도 늘어나야 하므로 저와 비슷한 방법이면 되지 않을까 합니다.

(저같은 경우 컬럼만 백개가 넘어가게 되서..)

개략적인 설명만 드리고 자세한 거는 메일(sealdheart@hotmail.com)을 주시면 보내드릴께요

----방법-----

stored procedure 두개가 필요합니다.

1.하나의 스토드에서 table을 만들고  while 문을 이용해 해당 개수만큼 table을 alter합니다.

-> 별도의 스토드를 만든건 같은 스토드 내에서는 alter table한 컬럼에 대해서는 insert,select등을 못합니다. 저같은 경우에 tempdb에 명시적으로 spid로 table을 만들고 alter table을 했습니다.

2.다른 스토드를 만들어 1번스토드를 실행해서 테이블을 만듭니다.

3.insert / select를 합니다.

4.tempdb의 temp table을 drop 합니다.

==> 스토드 내에 다이내믹 쿼리를 사용해야 합니다.

저도 나름 고민해서 만들었는데 이렇게 까지 만드신 분이 있을랑가.. 혹시 더 쉬운방법이 있는데 괜히 어렵게 만든거는 아닌지.. 

몇줄로 표현하기가 좀 그렇네요  ^^

 

강경수(타인의하늘)님이 2010-05-14 16:59에 작성한 댓글입니다.
이 댓글은 2010-05-14 17:03에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
4031php sybase 연결 문의 [1]
김창현
2010-05-08
7506
4030오라클 DATE 타입 SYBASE로 변환....도와주세요!!! [2]
조현욱
2010-05-07
9572
4029스키마별 테이블 사이즈 구하기
chkim
2010-05-06
7067
4028피벗, 프로시져 질문입니다..ㅠ [1]
레이
2010-05-05
8305
4027테이블이 차지하는 용량 확인방법 [1]
이문선
2010-05-01
8575
4026ASE 정렬시 한글 다음에 영문이 나오게 할 수 없을까요? [1]
이문선
2010-04-28
6978
4025쿼리문 좀 도와주세여..ㅠㅠ [1]
김동한
2010-04-23
6144
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다