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 41480 게시물 읽기
No. 41480
오라클 일요일 로우 생성 문의좀 드려요.
작성자
염진호(bboyjino)
작성일
2017-11-15 08:24ⓒ
2017-11-15 09:51ⓜ
조회수
5,359

안녕하세요.

 

컬럼

linecd, linenm, carcd, indate, groupno, g_no

내용

111111,노선1,101010,2017-11-10,100,1

111111,노선1,101010,2017-11-11,100,1

111111,노선1,101010,2017-11-13,100,1

111111,노선1,101010,2017-11-14,100,1

222222,노선2,202020,2017-11-10,100,2

222222,노선2,202020,2017-11-11,100,2

222222,노선2,202020,2017-11-13,100,2

222222,노선2,202020,2017-11-14,100,2

..

..

일자 기간별 조회를 하고 있습니다.

 

이런 데이터가 있습니다.

제가 원하는 리스트는요

111111,노선1,101010,2017-11-10,100,1

111111,노선1,101010,2017-11-11,100,1

111111,노선1,000000,2017-11-12,100,1

111111,노선1,101010,2017-11-13,100,1

111111,노선1,101010,2017-11-14,100,1

222222,노선2,202020,2017-11-10,100,2

222222,노선2,202020,2017-11-11,100,2

222222,노선2,000000,2017-11-12,100,2

222222,노선2,202020,2017-11-13,100,2

222222,노선2,202020,2017-11-14,100,2

 

일자별 카렌더를 뽑아서

linecd 별로 빠져있는 일요일 로우를 채우고 싶은데,

outer join으로 날리면 일자별 1개의 로우밖에 생성되지가 않습니다.;;

 

linecd별 일요일에 해당하는 날짜에 일자를 채우고

carcd = 000000 으로 넣을수 있을까요,,?

 

 

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

WITH t(linecd, linenm, carcd, indate, groupno, g_no) AS
(
          SELECT '111111', '노선1', '101010', '2017-11-10', 100, 1 FROM dual
UNION ALL SELECT '111111', '노선1', '101010', '2017-11-11', 100, 1 FROM dual
UNION ALL SELECT '111111', '노선1', '101010', '2017-11-13', 100, 1 FROM dual
UNION ALL SELECT '111111', '노선1', '101010', '2017-11-14', 100, 1 FROM dual
UNION ALL SELECT '222222', '노선2', '202020', '2017-11-10', 100, 2 FROM dual
UNION ALL SELECT '222222', '노선2', '202020', '2017-11-11', 100, 2 FROM dual
UNION ALL SELECT '222222', '노선2', '202020', '2017-11-13', 100, 2 FROM dual
UNION ALL SELECT '222222', '노선2', '202020', '2017-11-14', 100, 2 FROM dual
)
-- 토요일만 2건으로 복제하는 방법
SELECT linecd
     , linenm
     , DECODE(lv, 1, carcd, '000000') carcd
     , TO_CHAR(TO_DATE(indate, 'yyyy-mm-dd') + lv - 1, 'yyyy-mm-dd') indate
     , groupno
     , g_no
  FROM t
     , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 2)
 WHERE lv <= DECODE(TO_CHAR(TO_DATE(indate, 'yyyy-mm-dd'), 'd'), '7', 2, 1)
 ORDER BY linecd, indate
;

마농(manon94)님이 2017-11-15 16:55에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41484년도별, 달별 해당일수를 구하고 싶은데요... [2]
김경민
2017-11-22
5758
41483소계,합계 문의 드립니다. [2]
김민수
2017-11-20
7291
41481오라클 스케줄링에서 프로세스와 권한에대해 알고싶습니다.. [1]
오린이
2017-11-17
5325
41480오라클 일요일 로우 생성 문의좀 드려요. [1]
염진호
2017-11-15
5359
41479오라클 프로시저 생성 시 오류문제 문의 [1]
손호영
2017-11-10
5496
41478다음과 같이 했을때 복구가 가능하지 궁금합니다. [1]
김광덕
2017-11-07
5204
41477도와주세요 [2]
김진열
2017-11-03
5265
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다