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 2114 게시물 읽기
No. 2114
밑으로된 내역을 옆으로... 갈켜주세요
작성자
작성일
2005-07-16 10:27
조회수
2,829

항상도움만 받내요 염치 없지만 한번더 도움을 청합니다

일자 거래코드 내역 ......

20050101 1 333

20050101 1 4444

20050101 2 2323

20050101 2 1212

20050101 3 333

20050101 3 4444

20050101 4 2323

20050101 4 1212

위와 같이 된 테이블에서 "거래코드", 내역" 만 가지고 와서 아래와 같은 형태를 만들고싶어요

거래코드 내역1 내역2 내역3 .........

1 333 4444

2 2323 1212

3 333 4444

4 2323 1212

이런경우 쿼리를 어떻게 날려야 하나요 이것 땜시 맨날 몇달전에도 고민하고 오늘또 고민하게 되내요.. ((((ㅠ.ㅠ))))

해결방법은 어떻게 되나요

 

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

-- drop table tblx
create table tblx
(
s_date datetime,
code int,
contents varchar(10)
)


insert into tblx values (getdate(),1,'fd')
insert into tblx values (getdate(),1,'fdsa')
insert into tblx values (getdate(),1,'fd')
insert into tblx values (getdate(),2,'afds')
insert into tblx values (getdate(),2,'fdsa')
insert into tblx values (getdate(),3,'fd')
insert into tblx values (getdate(),3,'fda')
insert into tblx values (getdate(),3,'fdsa')
insert into tblx values (getdate(),4,'fad')
insert into tblx values (getdate(),5,'afd')
insert into tblx values (getdate(),5,'a')


DECLARE msWizad CURSOR
READ_ONLY
FOR select code from tblx group by code

DECLARE @code varchar(40)
create table #tbly
(
code int,
contents char(8000)
)
declare @contents varchar(8000)
OPEN msWizad

FETCH NEXT FROM msWizad INTO @code
WHILE (@@fetch_status <> -1)
BEGIN
 IF (@@fetch_status <> -2)
 BEGIN
  set @contents = ''
  select @contents = coalesce(@contents + ',','') + contents from tblx  where code = @code
  insert into #tbly values(@code , @contents)
 END
 FETCH NEXT FROM msWizad INTO @code
END

CLOSE msWizad
DEALLOCATE msWizad
select * from #tbly
drop table #tbly

 

 

결과

 

code        contents                                                                                                                                                                                                                                                        
----------- -------------------
1           ,fd,fdsa,fd                                                                                                                                                                                                                                                    
2           ,afds,fdsa                                                                                                                                                                                                                                                     
3           ,fd,fda,fdsa                                                                                                                                                                                                                                                   
4           ,fad                                                                                                                                                                                                                                                           
5           ,afd,a                                                                                                                                                                                                                                                         

(5 row(s) affected)

제머리로는 이케밖에 안되네요 ^----^

석이(minsouk)님이 2005-07-16 11:59에 작성한 댓글입니다.

석이님 감사합니다 많은 도움이 되겠습니다

늘 도움만 받고 죄송 ..  열공 하겠습니다..^^

 

김님이 2005-07-16 12:05에 작성한 댓글입니다.
이 댓글은 2005-07-16 12:07에 마지막으로 수정되었습니다. Edit

열심히 하시면 금방 할겁니다. ^^;

 

석이(minsouk)님이 2005-07-16 12:51에 작성한 댓글입니다.

 
drop table tbltest
create table tbltest
(
col1 varchar(100)
,col2 char(100)
)

truncate table tbltest

insert into tbltest (col1,col2) values ('1123','1')
insert into tbltest (col1,col2) values ('1','1')
insert into tbltest (col1,col2) values ('1','2')
insert into tbltest (col1,col2) values ('1','2')
insert into tbltest (col1,col2) values ('1','2')
insert into tbltest (col1,col2) values ('1','3')


declare   @col1s varchar(8000)
  ,@col2 varchar(100)

declare @t2 table
(
 col1 varchar(7500)
 ,col2 varchar(100)
)

select @col2=max(col2) from tbltest

while (@col2 > 0) begin
  set @col1s = ''
  select @col1s = coalesce(@col1s + '|', '') + col1 from tbltest where col2 = @col2
  set @col1s = substring (@col1s , 2, len(@col1s) - 1)
  insert into @t2 (col1,col2) values (@col1s, @col2)
 set @col2 = @col2 - 1
end

select * from @t2


select * from tbltest

석이님이 2005-09-30 14:25에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2117그냥 쓰다가 마네요..^^;; [1]
sqler
2005-07-18
2698
2116쿼리된 내용을 어떻게 저장하나요? [6]
커너
2005-07-18
5494
2115전국에서 팔린 상품수를 구하고 싶은데.. 쿼리가~~ [1]
쿼리 초보
2005-07-16
2211
2114밑으로된 내역을 옆으로... 갈켜주세요 [4]
2005-07-16
2829
2113링크드 서브 시에 오류 발생입니다. [2]
돈세자
2005-07-15
3840
2111저번에 제질문에많은 관심 보여주셔서 감사하면서..드디어 시작했습니다..ㅎㅎ 첫번째질문입니다 [14]
임종석
2005-07-15
3462
2110Stored Procedure 만 호출 할 수 있는 계정이 가능한가요? [1]
ASP
2005-07-15
3580
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다