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 4272 게시물 읽기
No. 4272
쿼리 질문입니다. 초보라 어렵네요 ㅠ
작성자
김민엽(eatyut)
작성일
2008-06-13 11:15
조회수
4,624

테이블(type 001은 입금, 002는 출금)

buyno type amt
1 001 10000
1 002 10000
2 001 18000
2 001 12000
2 002 30000



이라고 할때 결과물을


buycod 입금금액 출금금액
1 10000 10000
2 18000 30000
2 12000



대략 이런식으로 데이터를 추출할려고 합니다.


어떻게 풀어나갈야 할지 조언좀 부탁드립니다 ^^;;

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

WITH TMP AS (
select BUYNO = 1, TYPE = 1, AMT=10000 UNION ALL
select BUYNO = 1, TYPE = 2, AMT=10000 UNION ALL
select BUYNO = 2, TYPE = 1, AMT=18000 UNION ALL
select BUYNO = 2, TYPE = 1, AMT=12000 UNION ALL
select BUYNO = 2, TYPE = 2, AMT=30000 )

SELECT
 A.BUYNO
 , [입금] = A.AMT
 , [출금] = B.AMT
FROM
 (SELECT *, RN = ROW_NUMBER() OVER(ORDER BY BUYNO) FROM TMP WHERE TYPE = 1) A
 LEFT OUTER JOIN
 (SELECT * , RN = ROW_NUMBER() OVER(ORDER BY BUYNO) FROM TMP WHERE TYPE = 2) B
 
 ON A.BUYNO = B.BUYNO
 AND A.RN = B.RN

.님이 2008-06-13 11:35에 작성한 댓글입니다.
이 댓글은 2008-06-13 11:37에 마지막으로 수정되었습니다. Edit

항상 크로스 조인만 있는것처럼 써왔던것이 충격으로 오네요^^;

공부 다시 해야겠습니다 ㅎㅎ

감사합니다~~

김민엽(eatyut)님이 2008-06-13 19:29에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4275날짜 마스터테이블 데이터 생성 [1]
네네
2008-06-13
6566
4274연비계산하는 로직을 생각하고 있습니다. [1]
연비
2008-06-13
4674
4273별도의 파일 테이블이 존재할 경우, 리스트에서.. [2]
윤희진
2008-06-13
4375
4272쿼리 질문입니다. 초보라 어렵네요 ㅠ [2]
김민엽
2008-06-13
4624
4271MS Small Business Server R2에 대한 질문 좀..
김종현
2008-06-12
4362
4270쿼리 질문입니다.
박재인
2008-06-12
4138
4269SQL 2005 시스템 테이블 [1]
임대원
2008-06-12
4224
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.054초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다