쿼리 질문입니다. 0 2 448

by 이영택 [SQL Query] [2018.12.26 14:50:05]


시작일과 종료일 사이의 값을 구한 후 쿼리에서 보고싶습니다.

번호 시작일 종료일
1 20181226 20181228

 

번호 시작일 종료일 기간
1 20181226 20181228 20181226
1 20181226 20181228 20181227
1 20181226 20181228 20181228

 

 

SELECT 번호, 시작일, 종료일, (SELECT TO_DATE ('시작일', 'YYYYMMDD')+(LEVEL - 1) YMD
                                         FROM DUAL
                              CONNECT BY TO_DATE ('시작일', 'YYYYMMDD')+(LEVEL-1)                                         <=TO_DATE ('종료일', 'YYYYMMDD')) AS 기간

 

위의 쿼리로 했더니 ORA-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다.

이 뜨는데 아래 테이블처럼 출력하는 방법이 있을까요?

by 신이만든지기 [2018.12.26 15:52:51]
    SELECT :BEGIN                                                   BEGIN_DATE
         , :END                                                     END_DATE
         , TO_CHAR(TO_DATE(:BEGIN, 'YYYYMMDD') + LEVEL - 1, 'YYYYMMDD') PERIOD
      FROM DUAL
CONNECT BY LEVEL <= TO_DATE(:END, 'YYYYMMDD') - TO_DATE(:BEGIN, 'YYYYMMDD') + 1

 


by 마농 [2018.12.26 15:54:11]

1. 스칼라 서브 쿼리 없이 작성해 보세요.
2. 1개 번호에 대해서만 뽑는 건가요? 여러개 번호를 함께 뽑아야 하나요?
테이블에 직접 CONNECT BY 를 걸면 안됩니다.
http://gurubee.net/article/55635

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입