요일별 대상 일자 조회 0 5 3,481

by 일곱난장이 [SQL Query] 기간 요일 [2023.09.21 15:03:05]


안녕하세요, 고수님들 도움 부탁드립니다

10번창고 입고일자 요일 품목 입고량
2023-09-01 금요일 A 10
B 20
2023-09-08 금요일 B 15
C 10
2023-09-15 금요일 A 13
2023-09-22 금요일 A 10
C 10
2023-09-29 금요일 A 9

물품이동
 기간         : 2023-09-01 ~ 2023-09-30
   창고번호 : 10번
   입고요일 : 금요일 
  
  이동창고번호 : 11번
  이동요일 : 월요일

해당된 주에 포함된 요일로 이동을 할려고 합니다
예)
 1.  2023-09-01(금) -> 해당 주의 월요일은 (2023-08-28) 
 2. 2023-09-08(금) -> 해당 주의 월요일(2023-09-04)..

금요일 -> 토요일, 월 -> 수 이런 조건도 들어 올수 있습니다.

오라클에서 동적으로 아래 처럼 결과 조회 쿼리 부탁드립니다

원 창고번호 원 일자 변경 창고번호 변경일자
10 20230901 11 20230828
10 20230908 11 20230904
10 20230915 11 20230911
10 20230922 11 20230918
10 20230929 11 20230925

 

 

이동 할려는 요일의 일자를 조회하는 쿼리 부탁드립니다

by 마농 [2023.09.21 15:54:49]

날짜에서 4일을 빼는 방법으로 하시면 됩니다.
다만, DBMS 종류에 따라, 컬럼의 타입에 따라 구현방법이 다릅니다.


by 마농 [2023.09.22 00:19:54]

금->월 은 -4일 인데?
금->토 는 -6일 인가요? +1일 인가요?
해당주의 요일이라는 표현을 쓰셨는데?
주의 기준은 뭔가요? (일~토) (월~일)


by 일곱난장이 [2023.09.22 09:15:48]

금->토 는 -6일 인가요? +1일 인가요?

 ==> +1일 입니다

주의 기준은 

===> 일 ~ 토 입니다

감사합니다


by 마농 [2023.09.22 09:28:50]
WITH t AS
(
SELECT 10 no
     , TO_CHAR(TO_DATE('20230801', 'yyyymmdd') + LEVEL - 1, 'yyyymmdd') dt
     , ROUND(DBMS_RANDOM.VALUE(10, 90), -1) v
  FROM dual
 CONNECT BY LEVEL <= 99
)
SELECT no
     , dt
     , v
     , 11 no_1
     , TO_CHAR(NEXT_DAY(TRUNC(TO_DATE(dt, 'yyyymmdd'), 'd') - 1, '월'), 'yyyymmdd') dt_1
     , v v_1
  FROM t
 WHERE no  = 10
   AND dt >= '20230901'
   AND dt <= '20230930'
   AND TO_CHAR(TO_DATE(dt, 'yyyymmdd'), 'dy') = '금'
;

 


by 일곱난장이 [2023.09.22 15:38:19]

매번 큰 도움 주셔서 정말 감사합니다

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