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 3959 게시물 읽기
No. 3959
가로 출력
작성자
궁금이
작성일
2009-11-25 14:50ⓒ
2009-11-25 15:21ⓜ
조회수
7,388

          금액1 금액2  금액3 금액4 금액5
------------------------------------
상품1
상품2
상품3

위 처럼 보이는 데이터를 아래처럼 하려고 합니다.  쿼리를 어케해야하는지요??

             상품1   상품2   상품3
---------------------------------
금액1
금액2
금액3
금액4
금액5

이 글에 대한 댓글이 총 1건 있습니다.

row를 column으로 바꾸려면 집계함수와 CASE문으로 하고,

column를 row로 바꾸려면 복제를 해야 합니다.

여기는 두가지가 다 필요하겠네요.

1) row -> column

SELECT SUM(CASE WHEN 상품명 = '상품1' THEN 금액1 END) 상품1

                ,SUM(CASE WHEN 상품명 = '상품2' THEN 금액1 END) 상품2

FROM TAB1

2) column -> row

#TAB2 : NO라는 숫자컬럼이 하나있고, ROW가 5개(1,2,3,4,5)인 임시테이블(복제용테이블)

SELECT CASE B.NO

                      WHEN 1 THEN '금액1'

                      WHEN 2 THEN '금액2'

                      WHEN 3 THEN '금액3'

                      WHEN 4 THEN '금액4'

                      WHEN 5 THEN '금액5'

                 END                          금액구분

                ,SUM(CASE WHEN 상품명 = '상품1' THEN 금액1 END) 상품1

                ,SUM(CASE WHEN 상품명 = '상품2' THEN 금액1 END) 상품2

FROM TAB1 A, #TAB2 B

WHERE B.NO <= 5

GROUP BY B.NO

 

3) 위의 두개를 조합하여 완성

SELECT CASE B.NO

                      WHEN 1 THEN '금액1'

                      WHEN 2 THEN '금액2'

                      WHEN 3 THEN '금액3'

                      WHEN 4 THEN '금액4'

                      WHEN 5 THEN '금액5'

                 END                          금액구분

                ,SUM(CASE WHEN 상품명 = '상품1'

                                 THEN CASE B.NO

                                                  WHEN 1 THEN '금액1'

                                                  WHEN 2 THEN '금액2'

                                                  WHEN 3 THEN '금액3'

                                                  WHEN 4 THEN '금액4'

                                                  WHEN 5 THEN '금액5'

                                             END

                            END) 상품1

                ,SUM(CASE WHEN 상품명 = '상품2'

                                 THEN CASE B.NO

                                                  WHEN 1 THEN '금액1'

                                                  WHEN 2 THEN '금액2'

                                                  WHEN 3 THEN '금액3'

                                                  WHEN 4 THEN '금액4'

                                                  WHEN 5 THEN '금액5'

                                             END

                            END) 상품2

FROM TAB1 A, #TAB2 B

WHERE B.NO <= 5

GROUP BY B.NO

 

원하시는 결과인지 모르겟네요..

환경상 직접 테스트는 못해봤습니다. 맥락만 이해하시라구 답변 드립니다.

 

 

ase님이 2009-12-21 21:10에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3966Sybase PowerDesigner 카페자료실
tjworbs
2009-12-06
8007
3965datediff사용에 대한 오류 문의 [1]
황수원
2009-12-02
9292
3964노트북에 있는 WAP_PROF_I.dmp 파일을 IMPORT 하고 싶어요 [1]
조용주
2009-12-01
7874
3959가로 출력 [1]
궁금이
2009-11-25
7388
3955temporary 옵션 해제 방법 [1]
sybase
2009-11-24
8119
394610330 에 대한 sqlcode 질문드립니다.
김태호
2009-11-20
6929
3944ASE15 트라이얼버전 테이블 갯수 제한이 있나요? [1]
경처리
2009-11-19
6895
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다