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 4131 게시물 읽기
No. 4131
쿼리 질문 드립니다.
작성자
쿼리
작성일
2008-03-21 14:43
조회수
4,116

num      code      product   requestno

1           0000      rr              88s

2           0011      rr              88s

3           0044      rr              88s

4           0055      rr             88s

6           0077      rr              88s

7           0088      rr               88s

8           5020      rr              88s

9           9900      rr              88s

1           0000      rr              99s

2           0011      rr              99s

3           0044      rr              99s

4           0055      rr               99s

6           0077      rr               99s

7           0088      rr              99s

8           0066      rr              99s

9           9900      rr               99s

10          5020      rr              99s

11          9980     rr               99s

10          6000     rr                10s


위와 같은 결과가 있는데요....


중요한건 code가 5020이 등록된 requestno 의 prognum이 서로 다릅니다.

code가 5020 을 포함한 prognum 까지의 결과를 모두 구해 와야 합니다.

조건을 prognum <=( select max(prognum)  from table) 하면 맨 끝의 prognum 10 이 5020 과

겹쳐서 조건 주는 것이 어렵습니다.


code가 5020 까지의 누적된 값들을 모두 불러 오려면 어떻게 서브 쿼리를 구사 해야 할까요?


도움 부탁드립니다. 감사합니다.

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

중요하다고 하신 PROGRNUM은 NUM을 말하는 건가요? 

code가 5020 을 포함한 prognum 까지의 결과 -> 그 결과는 건 어떤 걸 말하는 걸까요? 
PROGNUM 10이 5020과 겹친다는 것은 머가 겹치는 걸까요? 

code가 5020 까지의 누적된 값이라는 것은 무엇의 누적값을 말하는 걸까요? 


글을 쓰신 분은 다 아시고 있는 것인데 
글을 읽는 저는 이해하기가 너무 어렵습니다. 

.님이 2008-03-21 15:56에 작성한 댓글입니다. Edit

먼저 관심 갖아 주셔서 감사드립니다. 


네 맞습니다. 


prognum 은 num 이 맞습니다. 제 착오 였습니다. 


num이 1 부터 시작해서 순차적으로 순서가 오는데..


5020 을 포함한 num 까지의 row들을 모두 가져 와야 합니다. 


그리고 겹친다는 건..


max로 num 을 5020 인 것을 고르면 쉽게 누계들을 구할수 있는데...


맨끝에 보면.. 10s 라는  놈의 num 이 10 이고 99s놈의 num 도 10 입니다 .


즉 max(num) 하여 5020 인 놈을 구하면..num 은 10 이 나오며, 이놈을 통해 범위 

처리를 하면 되는데...


num 이 10 인 10s 가 6000 이니... 엉뚱한 코드를 또 가져 오기 때문에..

안됩니다. 


다시 리뷰 부탁드려요..

쿼리님이 2008-03-21 16:18에 작성한 댓글입니다. Edit

제가 이해한대로 그냥 작성해봤습니다. 

/*

create table testA
(num int
, code char(4)
, product char(2)
, requestno varchar(5)
)
go
insert into testA
select num = 1 ,  code = '0000', product = 'rr', requestno =  '88s' union all
select num = 2 ,  code = '0011', product = 'rr', requestno =  '88s' union all
select num = 3 ,  code = '0044', product = 'rr', requestno =  '88s' union all
select num = 4 ,  code = '0055', product = 'rr', requestno =  '88s' union all
select num = 6 ,  code = '0077', product = 'rr', requestno =  '88s' union all
select num = 7 ,  code = '0088', product = 'rr', requestno =  '88s' union all
select num = 8 ,  code = '5020', product = 'rr', requestno =  '88s' union all
select num = 9 ,  code = '9900', product = 'rr', requestno =  '88s' union all
select num = 1 ,  code = '0000', product = 'rr', requestno =  '99s' union all
select num = 2 ,  code = '0011', product = 'rr', requestno =  '99s' union all
select num = 3 ,  code = '0044', product = 'rr', requestno =  '99s' union all
select num = 4 ,  code = '0055', product = 'rr', requestno =  '99s' union all
select num = 6 ,  code = '0077', product = 'rr', requestno =  '99s' union all
select num = 7 ,  code = '0088', product = 'rr', requestno =  '99s' union all
select num = 8 ,  code = '0066', product = 'rr', requestno =  '99s' union all
select num = 9 ,  code = '9900', product = 'rr', requestno =  '99s' union all
select num = 10,  code = '5020', product = 'rr', requestno =  '99s' union all
select num = 11,  code = '9980', product = 'rr', requestno =  '99s' union all
select num = 10,  code = '6000', product = 'rr', requestno =  '10s'
go


*/

select * , idx=identity(int) into #testA from testA


select sum(cast(replace(requestno, 's', '') as int)) from #testA
where idx <= (select max(idx) from #testA
   where code = '5020')

.님이 2008-03-21 17:17에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
4134다시 한번 질문 드립니다.
정명규
2008-03-21
3387
4133파티션테이블? [3]
김정훈
2008-03-21
4027
4132[Help]OLE DB 비동기 모델을 구현 중입니다.
두라믁
2008-03-21
3706
4131쿼리 질문 드립니다. [3]
쿼리
2008-03-21
4116
4130[질문]sql에서 schoolgradecode = @SCHOOLGRADECODE OR @SCHOOLGRADECODE = '' 의미가 궁금합니다. [1]
최승윤
2008-03-21
4213
4129DTS 여러개 원본 쿼리 지정 [1]
고형석
2008-03-21
4133
4128일정 시간들의 평균시간을 구할수 있나요?? [2]
용가리
2008-03-21
6351
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다