재질문드립니다. sql 이런 쿼리도 가능할까요?

재질문드립니다. sql 이런 쿼리도 가능할까요?

QA

재질문드립니다. sql 이런 쿼리도 가능할까요?

본문

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

이  름  |   예약일자  

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

홍길동   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일까지만 리스트에 나오게 하려 해요.. 종료하면 딱 없어지는 것이 아니라 언제 종료했다는 걸 보여줄려구요.

 

정리하면 조건절은 where 시작일  > (오늘날짜 - 12개월)  and  (종료일 + 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 ");

 

2번은 감이 안오네요..ㅠㅠㅠ

종료일 + 10일을 더해서 조건 줄수 있나요?

 

가능하다면 고수님들 좀 알려주세요.

이 질문에 댓글 쓰기 :

답변 3

SELECT name
      ,MAX(date) as maxday
      ,MIN(date) as minday
  FROM member
 WHERE date BETWEEN DATE_ADD(CURDATE(), INTERVAL -12 MONTH) AND DATE_ADD(CURDATE(), INTERVAL -10 DAY)
GROUP BY name
ORDER BY name ASC 

답변 진심으로 감사드립니다.
저도 between을 사용하려 했으나, 안탑깝게도 group by로 묶어서 리스트로 뽑아내야하기 때문에요.. 그룹으로 묶인 것 중에서 시작일(min)과 종료일(max)을 계산해서 찾아내야 되는데... 그 계산방법을 모르겠네요..ㅠㅠㅠ

while 돌때 조건절을 줘서
//$expire_day = date("y-m-d", strtotime("$row[maxdate] +10 day"));
//if($todate1 >= $expire_day) continue;
이렇게 하믄 페이지가 제데로 먹히지 않드라구요..
쿼리에서 총 갯수와 while에서 빼먹는 갯수가 달라서 그런거 같아요..

거듭 감사드립니다.

우선은 where date > $expire  from member 은 from member where date > $expire  으로 수정을 
해야 합니다. 

 

2번은 추가질문이 종료날짜 컬럼이 있고 종료날짜 값이 있는건지 
아니면 오늘날짜로 부터 종료날짜를 계산해서 종료후 10일을 추출하는 건지요??

답변을 작성하시기 전에 로그인 해주세요.
전체 234
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT