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

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

QA

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

본문

회원레벨 자동 등업 기능을 추가하기위해 주문 테이블에서 회원별 구매 총합을 구하여 일정 조건식에 해당되었을때의 멤버 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

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

회원로그인

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