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
운영게시판
최근게시물
MS-SQL Q&A 6815 게시물 읽기
No. 6815
합계를 구하는게 아니고 단순히 행을 열로 바꾸고 싶습니다.
작성자
초보
작성일
2014-05-22 17:50ⓒ
2014-05-22 17:52ⓜ
조회수
8,902

가로를 세로로 바꾸기 질문들을 아무리 들여다 봐도 도통 감을 못잡겠습니다.

노무비 재료비 경비 기타비 원가
650 500 100 70 1320
700 750 80 70 1600
750 600 100 70 1520
...        

row는 계속 증가할꺼구요. 항목은 정해져 있습니다.

이런 결과를 아래와 같이 바꾸고 싶습니다.

노무비 650 750 700 ...
재료비 500 600 750  
경비 100 100 80  
기타비 70 70 70  
원가 1320 1520 1600  

가능할까요?  ㅜㅜ

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

-- 설마 열을 구별하는 seq 같은 컬럼이 있기는 하겠지.... 라고 가정하고...

-- 왜 원래 테이블에는 1600짜리가 두번째 줄인데 원하는 결과에서는 3번째로 갔을까...하며 고민하던 건 걍 무시하고

CREATE TABLE tbl( 
seq INT
, [노무비] INT
, [재료비] INT
, [경비] INT
, [기타비] INT
, [원가] INT
)
;
INSERT INTO tbl( seq, [노무비], [재료비], [경비], [기타비], [원가] )
         SELECT 1, 650, 500, 100, 70, 1320
UNION ALL SELECT 2, 700, 750,  80, 70, 1600
UNION ALL SELECT 5, 750, 600, 100, 70, 1520
UNION ALL SELECT 6, 800, 650, 100, 70, 1620
;
 
DECLARE @seqs VARCHAR(MAX);
DECLARE @sumDist VARCHAR(MAX);
SELECT @seqs = '', @sumDist = '';
 
SELECT @seqs = @seqs + '[' + seq + '],'
, @sumDist = @sumDist + 'SUM( [' + seq + '] ),'
FROM ( SELECT CAST( seq AS VARCHAR(MAX) ) AS seq FROM tbl ) AS aa
;
 
SELECT @seqs = SUBSTRING( @seqs, 1, LEN( @seqs ) - 1 )
, @sumDist = SUBSTRING( @sumDist, 1, LEN( @sumDist ) - 1 )
;
 
EXEC( 'SELECT ''노무비'', ' + @sumDist + '
FROM tbl
PIVOT( MAX( [노무비] ) FOR seq IN ( ' + @seqs + ' )) AS pvt
UNION ALL
SELECT ''재료비'', ' + @sumDist + '
FROM tbl
PIVOT( MAX( [재료비] ) FOR seq IN ( ' + @seqs + ' )) AS pvt
UNION ALL
SELECT ''경비'', ' + @sumDist + '
FROM tbl
PIVOT( MAX( [경비] ) FOR seq IN ( ' + @seqs + ' )) AS pvt
UNION ALL
SELECT ''기타비'', ' + @sumDist + '
FROM tbl
PIVOT( MAX( [기타비] ) FOR seq IN ( ' + @seqs + ' )) AS pvt
UNION ALL
SELECT ''원가'', ' + @sumDist + '
FROM tbl
PIVOT( MAX( [원가] ) FOR seq IN ( ' + @seqs + ' )) AS pvt' 
)
;
 
우욱님이 2014-05-23 16:22에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6819DB 커넥션 실패.. 질문드립니다. [2]
최뭉뭉
2014-06-02
7924
6817데이타 가로 출력 문의 [4]
아바아바
2014-05-27
8676
6816SP1 -> SP2 업데이트 시 오류입니다.
이홍섭
2014-05-26
8082
6815합계를 구하는게 아니고 단순히 행을 열로 바꾸고 싶습니다. [1]
초보
2014-05-22
8902
6814문자열을 날짜 및/또는 시간으로 변환하지 못했습니다 도와주세요~~~ [7]
sql초보
2014-05-20
19489
6813절감액을 구하고 싶습니다. [2]
초짜
2014-05-19
7799
6812가변적이 가로 데이터를 세로로 출력하고 싶습니다. [2]
궁금이
2014-05-16
10604
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다