회원별 구매총합을 계산하여 조건식에 따라 Id 반환하는 SQL

회원별 구매총합을 계산하여 조건식에 따라 Id 반환하는 SQL

QA

회원별 구매총합을 계산하여 조건식에 따라 Id 반환하는 SQL

답변 2

본문

회원레벨 자동 등업 기능을 추가하기위해 주문 테이블에서 회원별 구매 총합을 구하여 일정 조건식에 해당되었을때의 멤버 ID를 반환하고 싶은데 여기서 딱막히네요. 

 

일단 제가 구현을 하려하는것이

1. (주문상태) od_status = '완료'

2. (결제시점) od_receipt_time이 오늘 기준에서 한달전까지의 데이터 

3. (주문금액) od_cart_price의 합이 200만원 이상 800만원 이하일때 (멤버별)

이 해당되는 멤버 id를 반환 이라 SQL을 짜봤는데 3번 항목의 멤버별 od_cart_price의 합을 구하는 방법을 잘 모르겠습니다.

 

`select mb_id from g5_shop_order where od_status = '완료' AND od_receipt_time between DATE_ADD(NOW(), INTERVAL -1 MONTH) AND NOW()`

 

몇번 시도해서 나온 다른 SQL

select mb_id, SUM(od_cart_price) from g5_shop_order GROUP BY mb_id HAVING (SUM(od_cart_price) > 500 && od_status = '완료')

저기에서 od_status 항목을 추가하면 에러가 떠버리더군요.. 왜일까요

4:27 추가

      `select mb_id, SUM(od_cart_price), od_status,od_receipt_time from g5_shop_order GROUP BY mb_id HAVING (SUM(od_cart_price) > 500 AND od_status = '완료' AND od_receipt_time between DATE_ADD(NOW(), INTERVAL -1 MONTH) AND NOW()) `

항목으로 하니 작동은되는데 괜찮은 쿼리인지 아리송합니다.

 

지금 생각해낸 SQL이 위와 같은데, 이럴경우에는 1,2만 AND 항목으로 묶이고 3을 추가를 해야하는데 이게 멤버별 od_cart_price SUM값을 어떻게 구현하는지 잘 모르겠습니다. 쿼리를 나눠야하는건지.. 뭔가 방법이 있을것같은데 키워드를 모르겠네요 ㅠㅠ

이 질문에 댓글 쓰기 :

답변 2

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 1,284
© SIRSOFT
현재 페이지 제일 처음으로