mysql 쿼리문 질문드려요..
본문
--------------------------------------
이 름 | 예약일자
--------------------------------------
홍길동 2018-11-01
김길동 2018-11-01
김길동 2018-11-02
홍길동 2018-11-03
김길동 2018-11-04
홍길동 2018-11-04
김길동 2018-11-06
홍길동 2018-11-07
홍길동 2018-11-08
위와 같은 데이터가 있을때요...
(이름 name , 예약일자는 date 라고 필드정의)
$res = sql_query ("select MAX(date) as maxday, MIN(date) as minday from member group by name ORDER BY name asc ");
이렇게 그룹바이를 써서 리스트로 뽑을려고 해요..
딱 이렇게 뽑으면 좋을려만.. 여기서 조건이 들어갑니다..
홍길동의 경우 예약일자가 2018-11-01 ~ 2018-11-08
김길동의 경우 예약일자가 2018-11-01 ~ 2018-11-06
조건절은요..
1. 시작일자가 12개월 전부터만 조회
2. 종료일자가 종료일이 지난뒤 10일까지만 리스트에 나오게 하려 해요.. 종료하면 딱 없어지는 것이 아니라 언제 종료했다는 걸 보여줄려구요.
1번 조건을 아래와 같이 하려다가요....
$expire = date("y-m-d", strtotime(' -12 month'));
$res = sql_query ("select MAX(date) as maxday, MIN(date) as minday where date > $expire from member group by name ORDER BY name asc ");
이렇게 where 절은 안될것 같아서요..
어케 12개월 전부터와 어케 마지막날 + 10일을 조건 줘서 조회해야 하는게 가능한지요?
가능하다면 고수님들 좀 알려주세요.
답변 2
$res = sql_query ("select MAX(date) as maxday, MIN(date) as minday where date > DATE_ADD(now() , INTERVAL -1 YEAR) from member group by name ORDER BY name asc ");
이렇게 하면 1년 전 부터 쿼리 하라는 겁니다만, 종료일이 지난 10일까지만? 이게 좀 이해가 가질 않는군요
$res = sql_query ("select MAX(date) as maxday, MIN(date) as minday from member where date > DATE_ADD(now() , INTERVAL -1 YEAR) and now() >= DATE_ADD(maxday , INTERVAL +10 DAY) group by name ORDER BY name asc ");
이정도면 될까요? 쿼리 실행은 해보지 않았습니다.