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 6346 게시물 읽기
No. 6346
날짜별 가격 범위 검색 쿼리 문의 드립니다.
작성자
김성호
작성일
2012-03-20 11:01ⓒ
2012-03-20 14:24ⓜ
조회수
7,711

다음과 같은 원본 테이블이 있습니다.

a, 20120301, 1000
a, 20120302, 1000
a, 20120303, 1500
a, 20120304, 1000
a, 20120305, 1000
a, 20120306, 1500
.
.
.

다음과 같이 출력하려고 합니다.

a, 20120301, 20120302, 1000
a, 20120303, 20120303, 1500
a, 20120304, 20120305, 1000
a, 20120306, 20120306, 1500
.
.
.
 

즉 날짜별로 가격이 같은 날을 날짜 순으로 묶어주고 20120303 같이 하루만 있다면 그 하루만 그룹으로 묶어야 합니다.


정말 어렵네요... 도움 부탁드립니다.

 

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

첫번째와 두번째가 결합되지만

세번째는 세번째와 결합되는 원리가 밝혀져야 쿼리가 짜집니다.

우욱님이 2012-03-20 13:19에 작성한 댓글입니다. Edit

본문 수정했습니다~

김성호님이 2012-03-20 14:25에 작성한 댓글입니다. Edit

WITH tt ( aa, dd, pp )
AS (
SELECT 'a', '20120301', 1000
UNION ALL SELECT 'a', '20120302', 1000
UNION ALL SELECT 'a', '20120303', 1500
UNION ALL SELECT 'a', '20120304', 1000
UNION ALL SELECT 'a', '20120305', 1000
UNION ALL SELECT 'a', '20120306', 1500
)
, wrn ( rn, aa, dd, pp )
as
(
select ROW_NUMBER() over ( order by dd ) as rn, aa, dd, pp from tt
)
, pair( lrn, laa, ldd, lpp, rrn, raa, rdd, rpp, tf )
as
(
select * , case when ii.pp = jj.pp then 1 else 0 end as tf
from wrn as ii
left join wrn as jj on ii.rn  + 1 = jj.rn
)
, pairin1( arn )
as
(
select lrn from pair where tf = 1
union all
select rrn from pair where tf = 1
)
 
select wrn.aa, wrn.dd as d1, wrn.dd as d2, wrn.pp
from wrn 
left join pairin1 as kk on wrn.rn = kk.arn
where arn is null
union all
select laa, ldd, rdd, lpp
from pair
where tf = 1
order by d1
;

우욱님이 2012-03-20 14:55에 작성한 댓글입니다.
이 댓글은 2012-03-20 14:58에 마지막으로 수정되었습니다. Edit

오~ 감사합니다!

그러나 실제로 적용해 보니 원하는 답이 안나오는군요.

제 설명이 부족했나 봅니다.

위 예로 든 데이타에서 20120301과 20120302가 같고 다음 레코드는 다른 즉 2개가 같고 1개가 틀린 패턴이 아니라 어떤 때는 5개가 같을 때도 있고 2개가 틀린 경우도 있습니다.

이런 경우 작성해 주신 쿼리로는 답이 안나오는군요... ㅡㅡ;

김성호님이 2012-03-20 17:22에 작성한 댓글입니다.
이 댓글은 2012-03-20 17:39에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6350ldf 파일용량 관련질문입니다. [1]
고영민
2012-03-23
7874
6348mssql2005에서 DB생성 문제(다른사람 DB가 보임) [1]
권혁진
2012-03-21
7552
6347[MS SQL 2005] Server IP 변경 후 생성한 계정 Lock ?! [2]
초보
2012-03-20
8003
6346날짜별 가격 범위 검색 쿼리 문의 드립니다. [4]
김성호
2012-03-20
7711
6345union all 문제입니다. [2]
정명규
2012-03-14
8036
6344MS SQL 2008 에서 SSL 사용하는법.. [1]
cos
2012-03-13
7790
6343서버 구성 조언좀 부탁드립니다... [1]
김성률
2012-03-13
8540
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다