날짜) 코드 값을 받아 쿼리에서 처리 할때 0 46

by 개발고수가되기를 [2022.01.07 17:30:51]


일반적으로 코드값이 '5'라면 

조건 = (select 조건 where 코드테이블)

 

제가 처리 해야 하는 것은 

코드 값에 5가 있으면 

AND aa >= TO_CHAR(SYSDATE-5, 'YYYYMMDD')

 

-5일 즉, 5일전을 표시해 줘야 하는데 이걸 어떻게 표현해서 처리하면 좋을까요?

테이블에 저장되어 있는 코드 값이 5이고

이것을 테이블에 담겨 있는 값으로 5일전으로 표시해야 하는데

일반적인 서브쿼리는 많이 해봣는데 이런 날짜에 테이블 값 넣는거는 참 애매하네요ㅠ

 

by 마농 [2022.01.10 09:41:08]
SELECT *
  FROM data_t a
     , code_t b
 WHERE a.aa >= TO_CHAR(sysdate - b.cd, 'yyyymmdd')
   AND -- 조인조건 --
   AND -- 검색조건 --
;

 


by 개발고수가되기를 [2022.01.10 10:04:28]

답변 감사합니다.

 

조인할 값이 전혀 없는 공통 테이블인데 이럴때는 5일전이랑 값을 넣기 위해 서브쿼리 형식으로는 어떻게 해야 할까요?

그냥 아우터 조인 걸어주면 다 널값으로 나와서요

마농님이 주신 쿼리로 하면 기존 테이블에 조인을 걸어서 해당 값을 보여줘야 하는데 조인 걸 값이 없어서요~


by 마농 [2022.01.10 10:18:46]

코드테이블이 여러건일텐데요?
그 중 5 라는 하나의 값을 가져오기 위한 조건은 있겠죠?


by 개발고수가되기를 [2022.01.10 10:30:24]

네네 해당코드의 값이 있습니다!

 

근데 쿼리가 제 기준 복잡하기도 하지만 

일만 코드 값이 아닌 -5날짜에다가 해당 5라는 값을 넣을라니 머리가 안돌아 가네요 ㅠ


by 마농 [2022.01.10 10:39:27]

질문의 내용만으로는 테이블 구조나 사용쿼리를 정확하게 알 수가 없어
정보 부족으로 직접 쿼리를 작성해 드릴 수가 없네요.
제가 드린 쿼리에 조건 및 컬럼명만 맞춰 넣으시면 됩니다.
잘 안되시면 사용하시는 각각의 쿼리를 보여주세요.
1. 코드 조회용 쿼리
2. 데이터 검색용 쿼리


by 마농 [2022.01.10 11:15:52]

"이런 식으로 간단하게 처리 햇으면 하는데" 라고 하셨는데요???
1. 그런 식으로 하시면 됩니다. (서브쿼리 이용 방식)
2. 다른 식으로도 가능하구요. (조인 이용, 제 댓글의 쿼리 방식)
코드 조회용 쿼리는 안적어 주셨네요.

1. 서브쿼리 방식
SELECT ...
  FROM ...
 WHERE ...
   AND m410.dy_acqu >= TO_CHAR(sysdate - (SELECT cd FROM code_t WHERE 조건), 'yyyymmdd')
;
1. 서브쿼리 방식
SELECT ...
  FROM ...
 WHERE ...
   AND m410.dy_acqu >= (SELECT TO_CHAR(sysdate - cd, 'yyyymmdd') FROM code_t WHERE 조건)
;
2. 조인 방식
SELECT ...
  FROM ...
     , code_t c
 WHERE ...
   AND c.조건
   AND m410.dy_acqu >= TO_CHAR(sysdate - c.cd, 'yyyymmdd')
;

 


by 개발고수가되기를 [2022.01.10 12:12:26]

아 그냥 - (SELECT SALE_CNT FROM TT WHERE MBS_CD = '05' AND FG_USE = '1') 요렇게 처리 하니 바로 처리 되네요 정말 감사합니다

 

분명 지난주에는 오류가 났었는데 문법 오류가 있었던거 같네요

새해복 많이 받으세요!