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
운영게시판
최근게시물
Oracle Q&A 40381 게시물 읽기
No. 40381
SQL문 질문입니다.
작성자
장중철(II이카루스II)
작성일
2014-02-13 11:20
조회수
6,617

안녕하세요

TABLE이

CODE, YYYY, MM으로 구성되어 있는 테이블입니다.

이번달이 2014, 02월인데

이번달 이전의 최신값을 찾아오고 싶은데 방법이 있을가요?

아무리 머리를 굴려봐도 답이 안나오네요

고수님들의 고언을 부탁드리겠습니다.

 

행복한 하루 되세요

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

YYYY, MM 2개를 정렬 조건으로 넣고 2번째 것을 조회되게 하였습니다.

 

WITH T1 AS
(
SELECT '1' AS CODE, '2013' AS YYYY, '01' AS MM FROM DUAL UNION ALL
SELECT '2' AS CODE, '2013' AS YYYY, '02' AS MM FROM DUAL UNION ALL
SELECT '3' AS CODE, '2013' AS YYYY, '03' AS MM FROM DUAL UNION ALL
SELECT '4' AS CODE, '2013' AS YYYY, '04' AS MM FROM DUAL UNION ALL
SELECT '5' AS CODE, '2013' AS YYYY, '05' AS MM FROM DUAL UNION ALL
SELECT '6' AS CODE, '2014' AS YYYY, '02' AS MM FROM DUAL
)
SELECT * FROM (
        SELECT CODE
                    , YYYY
                    , MM
                    , ROW_NUMBER() OVER (ORDER BY YYYY DESC, MM DESC) AS RN
        FROM T1
) WHERE RN = 2 ;

 

 

이번달 이전에 대한 조건까지 넣으시려면 WHERE 조건이 추가됩니다.

 

 WITH T1 AS
(
SELECT '1' AS CODE, '2013' AS YYYY, '01' AS MM FROM DUAL UNION ALL
SELECT '2' AS CODE, '2013' AS YYYY, '02' AS MM FROM DUAL UNION ALL
SELECT '3' AS CODE, '2013' AS YYYY, '03' AS MM FROM DUAL UNION ALL
SELECT '4' AS CODE, '2013' AS YYYY, '04' AS MM FROM DUAL UNION ALL
SELECT '5' AS CODE, '2013' AS YYYY, '05' AS MM FROM DUAL UNION ALL
SELECT '6' AS CODE, '2014' AS YYYY, '02' AS MM FROM DUAL
)
SELECT * FROM (
        SELECT CODE
                    , YYYY
                    , MM
                    , ROW_NUMBER() OVER (ORDER BY YYYY DESC, MM DESC) AS RN
        FROM T1
        WHERE YYYY||MM <= TO_CHAR(SYSDATE, 'YYYYMM')
) WHERE RN = 2 ;

박성빈(빈이님)님이 2014-02-17 13:38에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40384substr 후 한글깨짐현상
껌은요정
2014-02-17
8135
40383함수 질문이여 [1]
김도완
2014-02-14
6905
40382조회조건 [01,02] 와 전체조회[null] 계산법이 다른데 전체조회시 코드값[01,02]계산을 따로 하는방법 부탁드려요 [1]
초록이
2014-02-13
7647
40381SQL문 질문입니다. [1]
장중철
2014-02-13
6617
40380ROLLUP을 사용해야 되는데 DECODE를 써야 되는 부분이 있어서 질문합니다. [1]
소라
2014-02-12
7512
40379특정조건별 그룹번호 부여가능한가요? [2]
엘군
2014-02-12
6491
40377이전 데이터와 자료 비교 [2]
성석준
2014-02-12
7313
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다