FROM GC_MEMBER GM LEFT JOIN GC_EXTRL_MEMBER EM /* 타 매장회원 포함 */ INNER JOIN GC_EXTRL_MEMBER EM /* 자기 매장만 */ ON GM.MBR_INNB = EM.MBR_INNB AND GM.MBR_DV_CD = EM.MBR_DV_CD AND EM.EXTRL_INTRLCK_DV_CD = '03' INNER JOIN GC_MEMBER_SITE GMS ON GM.MBR_INNB = GMS.MBR_INNB AND GM.MBR_DV_CD = GMS.MBR_DV_CD AND GMS.SOPMAL_CD = #{sopmalCd} INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM ON GMS.MBR_INNB = GMGM.MBR_INNB AND GMS.MBR_DV_CD = GMGM.MBR_DV_CD AND GMS.SOPMAL_CD = GMGM.SOPMAL_CD /* 특정 등급 */ AND GMGM.MBR_GRAD_INNB = #{srchGrad} LEFT JOIN GC_MARKETING_AGREE GMA -- 마케팅 수신여부 동의 체크 안할때는 JOIN 안함 ON GMS.MBR_INNB = GMA.MBR_INNB AND GMS.MBR_DV_CD = GMA.MBR_DV_CD AND GMS.SOPMAL_CD = GMA.SOPMAL_CD -- SOPMALL 기준 검색 AND GMA.MARKT_RECPTN_AGRE_AT = #{srchMarktRecptnAgreAt} -- 마케팅 수신여부 동의 체크 할때는 필수 LEFT JOIN LATERAL ( SELECT FMI.MBR_INNB , FMI.MBR_DV_CD , SUM( FMI.BLCE ) - SUM( IFNULL(FMI.LOSS,0) ) AS MILEAGE FROM GC_MILEAGE FMI WHERE 1 = 1 AND FMI.MBR_INNB = GM.MBR_INNB AND FMI.MBR_DV_CD = GM.MBR_DV_CD AND FMI.BLCE > 0 AND FMI.USE_POSBL_END_DT >= DATE_FORMAT(CURDATE(), '%Y-%m-%d') AND FMI.MLG_ACCML_DV_CD IN ('add', 'up') AND FMI.CANCL_AT = 'N' ) GMI ON GM.MBR_INNB = GMI.MBR_INNB AND GM.MBR_DV_CD = GMI.MBR_DV_CD LEFT JOIN LATERAL ( SELECT O.MBR_INNB, O.MBR_DV_CD , SUM(O.RL_SETLE_AMT) - SUM(IFNULL(GOR.REFUND_AMT, 0)) AS RL_SETLE_AMT , COUNT(O.ORDR_INNB) ORDR_CNT FROM GC_ORDER O LEFT JOIN LATERAL(SELECT GOR2.ORDR_INNB, GOR2.SOPMAL_CD, SUM(GOR2.REFUND_AMT) REFUND_AMT FROM GC_ORDER_REFUND GOR2 WHERE 1 = 1 AND GOR2.USE_AT = 'Y' AND GOR2.REFUND_PROCS_STTUS_CD IN ('02','03') -- 추가됨...01 신청단계는 계산안해야함 AND O.ORDR_INNB = GOR2.ORDR_INNB AND O.SOPMAL_CD = GOR2.SOPMAL_CD GROUP BY GOR2.ORDR_INNB, GOR2.SOPMAL_CD ) GOR ON O.ORDR_INNB = GOR.ORDR_INNB AND O.SOPMAL_CD = GOR.SOPMAL_CD WHERE 1 = 1 AND (O.ORDR_INNB, O.SOPMAL_CD) IN ( SELECT DISTINCT GOI.ORDR_INNB, GOI.SOPMAL_CD FROM GC_ORDER_ITEM GOI INNER JOIN GC_ORDER O1 ON GOI.ORDR_INNB = O1.ORDR_INNB AND GOI.SOPMAL_CD = O1.SOPMAL_CD WHERE 1 = 1 AND GOI.GOODS_KND_CD = '01' AND GOI.GOODS_NM LIKE CONCAT('%',IFNULL(#{stdrGoodsNm},''),'%') AND O1.SOPMAL_CD = O.SOPMAL_CD AND O1.MBR_INNB = O.MBR_INNB AND O1.MBR_DV_CD = O.MBR_DV_CD ) AND O.SOPMAL_CD = #{sopmalCd} AND O.USE_AT = 'Y' AND O.ORDR_STTUS_CD BETWEEN '25' AND '75' AND O.ORDR_RCEPT_DT =]]> IFNULL(#{stdrStrtPurchsPd}, '1999-01-01') AND O.ORDR_RCEPT_DT IFNULL(DATE_ADD(#{stdrEndPurchsPd},INTERVAL 1 DAY), SYSDATE()) AND O.MBR_INNB = GM.MBR_INNB AND O.MBR_DV_CD = GM.MBR_DV_CD GROUP BY O.MBR_INNB, O.MBR_DV_CD ) GO2 ON GM.MBR_INNB = GO2.MBR_INNB AND GM.MBR_DV_CD = GO2.MBR_DV_CD LEFT JOIN LATERAL ( SELECT O.MBR_INNB, O.MBR_DV_CD , SUM(O.RL_SETLE_AMT) - SUM(IFNULL(GOR.REFUND_AMT, 0)) AS RL_SETLE_AMT , COUNT(O.ORDR_INNB) ORDR_CNT FROM GC_ORDER O LEFT JOIN LATERAL(SELECT GOR2.ORDR_INNB, GOR2.SOPMAL_CD, SUM(GOR2.REFUND_AMT) REFUND_AMT FROM GC_ORDER_REFUND GOR2 WHERE 1 = 1 AND GOR2.USE_AT = 'Y' AND GOR2.REFUND_PROCS_STTUS_CD IN ('02','03') -- 추가됨...01 신청단계는 계산안해야함 AND O.ORDR_INNB = GOR2.ORDR_INNB AND O.SOPMAL_CD = GOR2.SOPMAL_CD GROUP BY GOR2.ORDR_INNB, GOR2.SOPMAL_CD ) GOR ON O.ORDR_INNB = GOR.ORDR_INNB AND O.SOPMAL_CD = GOR.SOPMAL_CD WHERE 1 = 1 AND (O.ORDR_INNB, O.SOPMAL_CD) IN ( SELECT DISTINCT GOI.ORDR_INNB, GOI.SOPMAL_CD FROM GC_ORDER_ITEM GOI INNER JOIN GC_ORDER O1 ON GOI.ORDR_INNB = O1.ORDR_INNB AND GOI.SOPMAL_CD = O1.SOPMAL_CD WHERE 1 = 1 AND GOI.GOODS_KND_CD = '01' AND GOI.GOODS_NM LIKE CONCAT('%',IFNULL(#{cmprGoodsNm},''),'%') AND O1.SOPMAL_CD = O.SOPMAL_CD AND O1.MBR_INNB = O.MBR_INNB AND O1.MBR_DV_CD = O.MBR_DV_CD ) AND O.SOPMAL_CD = #{sopmalCd} AND O.USE_AT = 'Y' AND O.ORDR_STTUS_CD BETWEEN '25' AND '75' AND O.ORDR_RCEPT_DT =]]> IFNULL(#{cmprStrtPurchsPd}, '1999-01-01') AND O.ORDR_RCEPT_DT IFNULL(DATE_ADD(#{cmprEndPurchsPd},INTERVAL 1 DAY), SYSDATE()) AND O.MBR_INNB = GM.MBR_INNB AND O.MBR_DV_CD = GM.MBR_DV_CD GROUP BY O.MBR_INNB, O.MBR_DV_CD ) GO3 ON GM.MBR_INNB = GO3.MBR_INNB AND GM.MBR_DV_CD = GO3.MBR_DV_CD WHERE 1 = 1 AND GM.USE_AT = 'Y' AND GM.MBR_DV_CD = 'GC' AND GM.MBR_NM = #{srchKeyword} AND GM.MBR_ID = #{srchKeyword} AND GM.EMAIL = (SELECT HEX(AES_ENCRYPT(#{srchKeyword} , #{secretKey}))) AND GM.MBTLNB = (SELECT HEX(AES_ENCRYPT(REPLACE(#{srchKeyword},'-',''), #{secretKey}))) AND EM.EXTRL_INTRLCK_DV_CD = '03' /* POS 회원이고(타매장 회원 체크 아닐때 필수) */ AND EM.STR_INNB = #{strInnb} /* 내매장이고 (타매장 회원 체크 아닐때 필수) */ AND GM.REGIST_DT =]]> IFNULL(#{srchStrtRegistDt}, '1999-01-01') /* 가입일 시작 */ AND GM.REGIST_DT IFNULL(DATE_ADD(#{srchEndRegistDt},INTERVAL 1 DAY), SYSDATE()) /* 가입일 종료 */ AND GMS.LAST_PURCHS_DT =]]> IFNULL(#{srchStrtLastPurchsDt}, '1999-01-01') /* 최종구매일 시작 */ AND GMS.LAST_PURCHS_DT IFNULL(DATE_ADD(#{srchEndLastPurchsDt},INTERVAL 1 DAY), SYSDATE()) /* 최종구매일 종료 */ AND IFNULL(GO2.RL_SETLE_AMT,0) =]]> IFNULL(#{stdrStrtPurchsAmt}, 0) /* 기준 구매금액 시작 */ AND IFNULL(GO2.RL_SETLE_AMT,0) IFNULL(#{stdrEndPurchsAmt}, 9999999999) /* 기준 구매금액 종료 */ AND IFNULL(GO2.ORDR_CNT,0) =]]> IFNULL(#{stdrStrtPurchsCnt}, 0) /* 기준 구매횟수 시작 */ AND IFNULL(GO2.ORDR_CNT,0) IFNULL(#{stdrEndPurchsCnt}, 9999999) /* 기준 구매횟수 종료 */ AND IFNULL(GO3.RL_SETLE_AMT,0) =]]> IFNULL(#{cmprStrtPurchsAmt}, 0) /* 비교 구매금액 시작 */ AND IFNULL(GO3.RL_SETLE_AMT,0) IFNULL(#{cmprEndPurchsAmt}, 9999999999) /* 비교 구매금액 종료 */ AND IFNULL(GO3.ORDR_CNT,0) =]]> IFNULL(#{cmprStrtPurchsAmt}, 0) /* 비교 구매횟수 시작 */ AND IFNULL(GO3.ORDR_CNT,0) IFNULL(#{cmprEndPurchsAmt}, 9999999) /* 비교 구매횟수 종료 */ /* 성별 */ AND GM.SEX = #{srchSex} /* 생년 시작 */ AND GM.BRTH_DE =]]> DATE_FORMAT(CONCAT(IFNULL(#{srchStrtBrthYear}, '1999'),'0101'),'%Y0101') /* 생년 종료 */ AND GM.BRTH_DE DATE_FORMAT(CONCAT(IFNULL(#{srchEndBrthYear}, '9999'),'1231'),'%Y1231') /* 출생 월 시작*/ AND SUBSTRING(GM.BRTH_DE,5,2) =]]> #{srchStrtBrthMonth} /* 출생 윌 종료 */ AND SUBSTRING(GM.BRTH_DE,5,2) #{srchEndBrthMonth} /* 마일리지 시작 */ AND GMI.MILEAGE =]]> #{srchStrtMlg} /* 마일리지 종료 */ AND GMI.MILEAGE #{srchEndMlg} /* 마케팅 수신여부 동의 */ AND GMA.MARKT_RECPTN_AGRE_AT = #{srchMarktRecptnAgreAt} AND CNSLT.CNSLT_CN LIKE CONCAT('%', #{srchCnsltCn}, '%') = #{srchStartDate} ' 00:00:00' ]]> #{srchProcsSttusCd} INSERT INTO GC_STORE_COUNSEL (STR_CNSLT_DTLS_INNB, STR_INNB, MNGR_INNB, MBR_INNB, MBR_DV_CD, CNSLT_CN, PROCS_STTUS, PROCS_DE_CTY, REGUSR, REGUSRNM, REGIST_DT, UPDUSR, UPDT_DT) VALUES ( #{strCnsltDtlsInnb}, #{strInnb}, #{mngrInnb}, #{mbrInnb}, #{mbrDvCd}, #{cnsltCn}, #{procsSttus}, NOW() #{regusr}, #{regusrnm}, NOW(), #{updusr}, NOW()); /* 처리여부, 내용*/ UPDATE GC_STORE_COUNSEL SET CNSLT_CN = #{cnsltCn}, PROCS_STTUS = #{procsSttus}, UPDUSR = #{updusr}, UPDT_DT = NOW() WHERE STR_CNSLT_DTLS_INNB = #{strCnsltDtlsInnb} DELETE FROM GC_STORE_COUNSEL WHERE STR_CNSLT_DTLS_INNB = #{strCnsltDtlsInnb}