() between start_date and end_date 0 3 117

by 도겸아빠 [SQL Query] [2018.01.12 15:16:34]


안녕하세요.

아래와 같이 여러행이 between 절에 들어가는 경우가 있는데 가능할까요?

SELECT '20170101' from dual
UNION ALL
SELECT '20170102' from dual
UNION ALL
SELECT '20170103' from dual

위와 같이 날짜가 비고정일때

 

(위 결과가 여기 들어가야하는데) between start_date and  end_date

row가 1건이 아니라서 불가능 한데 다른 방법이 있는지요?

 

미리 감사합니다.

by 우리집아찌 [2018.01.12 15:34:44]

이해가 잘 안되네요.

원본데이터 , 원하시는 출력데이터 , SQL을 올려주세요.


by 임상준 [2018.01.12 16:38:55]

start date 가 여러 행 중 가장 작은날보다 작아야 하고 end data 가 여러 행 중 가장 큰 날보다 커야하는 요건같은 느낌인데요

날짜 집합을 min, max 해서 between 말고 > < 로 처리하던지 아니면 날짜 집합을 서브쿼리로 만들어서 그냥 조인 걸면..


by 마농 [2018.01.15 08:33:39]
SELECT *
  FROM (SELECT '20170101' dt FROM dual
        UNION ALL SELECT '20170102' FROM dual
        UNION ALL SELECT '20170103' FROM dual
        ) a
     , ttt b
 WHERE a.dt BETWEEN b.start_date AND b.end_date
;

 

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