재질문드립니다. 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일을 추출하는 건지요??

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

회원로그인

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