디비는 오라클입니다
SELECT A.MEMBER_NO AS 고객번호, A.MEMBER_NM AS 이름, COUNT(B.BUY_AMT) AS 구매횟수 FROM ORDER_INFO B INNER JOIN MEMBER_INFO A ON B.BUY_AMT > 29999 AND A.MEMBER_NO = B.MEMBER_NO GROUP BY B.BUY_AMT ,A.MEMBER_NM, A.MEMBER_NO ,B.RETURN_AMT ORDER BY 구매횟수 DESC ;
여기에다가
구매횟수에서 아래 반품횟수를 빼서 구매횟수를 출력하고싶습니다
SELECT MEMBER_NO,COUNT(ORDER_STATUS_CD)
FROM ORDER_INFO
WHERE ORDER_STATUS_CD = 'CAL'
AND REMAIN_AMT < 29999
GROUP BY ORDER_STATUS_CD,MEMBER_NO ;
좋은 방법없을까요??ㅜㅜ
3만원 이상 구매만 해당되어야 하는 거죠?
2번 반품 쿼리는 그 조건이 없어서 틀린 듯 하네요?
1번 구매 쿼리도 Group By 가 이상하구요.
SELECT a.member_no AS 고객번호 , a.member_nm AS 이름 , b.buy_cnt AS 구매횟수 , b.rem_cnt AS 반품횟수 , b.buy_cnt - b.rem_cnt AS 실구매횟수 FROM member_info a INNER JOIN (SELECT member_no , COUNT(*) buy_cnt , COUNT(CASE WHEN remain_amt < 29999 AND order_status_cd = 'CAL' THEN 1 END) rem_cnt FROM order_info WHERE buy_amt > 29999 GROUP BY member_no ) b ON a.member_no = b.member_no ORDER BY 실구매횟수 DESC ;
SELECT a.member_no AS 고객번호 , a.member_nm AS 이름 , b.buy_cnt AS 구매횟수 , b.rem_cnt AS 반품횟수 , b.buy_cnt - b.rem_cnt AS 실구매횟수 FROM member_info a INNER JOIN (SELECT member_no , COUNT(*) buy_cnt , COUNT(CASE WHEN remain_amt < 29999 AND order_status_cd = 'CAL' THEN 1 END) rem_cnt FROM order_info GROUP BY member_no ) b ON a.member_no = b.member_no ORDER BY 실구매횟수 DESC ;
다 맞구 요기 쿼리에서 3만원 이상 구매 했을때 구매횟수가 늘어나야하거든요 ㅜㅜ