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 5645 게시물 읽기
No. 5645
두 테이블간, 구분값을 기준으로 가로 행을 세로 열로
작성자
demona
작성일
2010-05-06 18:44ⓒ
2010-05-06 19:31ⓜ
조회수
6,407

test_1
cd div data1 data2
a 0 1000 2000
a 1 2000 3000
b 0 3000 5000
b 1 6000 2000
c 0 5000 3000
c 1 4000 7000
d 1 2500 1500

 

 

 

 

 

 

 

test_2
cd div data1 data2
a 0 500 700
a 1 300 900
b 0 700 800
b 1 800 100
c 0 500 600
c 1 300 700

 

 

 

 

 

 

 위 처럼 두 테이블이 있습니다. 구분값이 div이고 cd는 사람이나 업체라고 생각하면 됩니당.

 

 SELECT 
 X.cd,
 X.div,
 X.data1 + Y.data1 AS DATA1,
 X.data2 + Y.data2 AS DATA2
    FROM test_1 AS X
   INNER JOIN test_2 AS ON (X.cd = Y.cd AND X.div = Y.div)
 WHERE X.div = 0

UNION ALL

SELECT 
 X.cd,
 X.div,
 X.data1 + Y.data1 AS DATA1,
 X.data2 + Y.data2 AS DATA2
    FROM test_1 AS X
   INNER JOIN test_2 AS ON (X.cd = Y.cd AND X.div = Y.div)
 WHERE X.div = 1

cd div data1 data2
a 0 1500 2700
b 0 3700 5800
c 0 5500 3600
a 1 2300 3900
b 1 6800 2100
c 1 4300 7700


하고 싶은 것은 div가 0인 것은 그대로 나오고 1인 것은 우측에 붙이고 싶습니다.
그리고 1번 테이블에만 있던 d값도 나오게 하고 싶어요.

원하는 결과물은

               <------------ div: 0 --------------> <------------ div:1 ---------------->

cd data1 data2 data1 data2
a 1500 2700 2300 3900
b 3700 5800 6800 2100
c 5500 3600 4300 7700
d 0 0 2500 1500

 

 

 

부탁드려요 ㅠㅜ

이 글에 대한 댓글이 총 1건 있습니다.
select cd
      ,    sum (case when div = 0 then  data1 else 0 end ) data11
      ,     sum (case when div = 0 then  data1 else 0 end ) data12
      ,    sum  (case when div = 1 then  data2 else 0 end ) data21
      ,     sum (case when div = 1 then  data2 else 0 end ) data22
  from test_1
 group by cd 

 

지나가다가님이 2010-05-07 13:47에 작성한 댓글입니다.
이 댓글은 2010-05-07 13:48에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
5648convert(varchar, float) 변환 문제
김종화
2010-05-07
7620
5647도와주세요 백업 설정 ㅠㅠ
와니
2010-05-07
6204
5646ms sql 성능 저하 문제 [1]
sh
2010-05-07
6313
5645두 테이블간, 구분값을 기준으로 가로 행을 세로 열로 [1]
demona
2010-05-06
6407
5644쿼리 차이점에 대한 질문입니다 [1]
박창수
2010-05-03
5619
5643쿼리문 부탁드립니다... [왕초보] ㅜ.ㅜ
정재우
2010-04-29
5663
5641쿼리 질문좀 드립니다. [2]
이가루
2010-04-27
5997
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다