테스트 사이트 - 개발 중인 베타 버전입니다

mysql 쿼리문 질문드려요.. 채택완료

소수리꼬 7년 전 조회 3,107

--------------------------------------

이  름  |   예약일자  

--------------------------------------

홍길동   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 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 "); 

 

이정도면 될까요? 쿼리 실행은 해보지 않았습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

소수리꼬
7년 전
답변 감사드립니다.
maxday 값이 Null 이 되는것 같네요...ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

유찬아빠

$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일까지만? 이게 좀 이해가 가질 않는군요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

소수리꼬
7년 전
답변 감사드립니다.

where 마지막날짜 > (오늘날짜 - 12개월) and (마지막날짜 + 10일) <= 오늘날짜

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인