현재의 상태값을 가지는 최초일자 구하는 방법문의
kwindow2 1학년

답변 채택시 : 0코아

답변 1 추천 0 조회 620 2017.07.06
안녕하세요
특정 도서에 대해  대출가능, 대출불가능 상태가 수시로 바뀌는 데요
현재가 대출가능일때 대충가능하게된 시작일을 구하려고 하는데 이런 경우 어떻게 해야 되나요

예들 들어)
책no : bookid
상태 : Y(대충가능), N(대출불가)
변경날자 : 살태 변경일시 

) 데이터는 
book1    Y 20170706
book1    Y 20170705
book1    Y 20170704
book1    Y 20170703
book1    N 20170702
book1    N 20170701
book1    N 20170630
book1    Y 20170629
book1    Y 20170628
book1    N 20170627
book1    N 20170626

-- 이럴때 현재상태는 Y(대출가능)이고 현재 대충가능하게된 가장작은 날은 '20170703'로 결과값이 나와야 합니다.
원하는 결과값,  book1, 'Y',' 20170703' 
댓글 (0)
목록 답변등록
현재의 상태값을 가지는 최초일자 구하는 방법문의
salinokl 2017.07.12

안녕하세요,


해당 책의 대출가능이 N 인 데이터 중에 max date를 찾아서,

그 이후의 Y인 데이터 중 min date를 찾으면 되는 문제이네요.


테이블이 아래와 같다고 하면,


create table book 

( id varchar2(10),

  yn varchar2(5),

  dt varchar2(20)

 );


아래와 같이 max 와 min을 이용하면 됩니다.


  select id, yn, min(dt)

  from book

  where dt > (select max(dt) from book where yn = 'N' and id = 'book1')

  and yn = 'Y'

  and id = 'book1'

  group by id, yn;


결과는 다음과 같이 나옵니다.

캡처.PNG

댓글 (0)