join sum() 합산 질문...

join sum() 합산 질문...

QA

join sum() 합산 질문...

본문

3개 join


        select a.mb_name, b.mb_id, c.mb_id, count(*) as cnt , sum(b.wr_31) as totb, sum(c.wr_31) as totc
          from g5_member a
                   left join g5_write_csorder b on a.mb_id = b.mb_id
                   left join g5_write_cscenter c on a.mb_id = c.mb_id
         where b.wr_29 between '{$stx1}' and '{$stx2}' and b.wr_50 like '%{$stx7}%' and NOT b.wr_54 IN ('exchange') and NOT b.wr_7 IN ('4') and
         c.wr_29 between '{$stx1}' and '{$stx2}' and c.wr_50 like '%{$stx7}%'
         group by a.mb_name, b.mb_id ORDER BY totb DESC

 

2개 join (cscenter) sum()값이 정상적임

회원 닉네임때문에 member와 join


        select a.mb_name, b.mb_id,count(*) as cnt , sum(b.wr_31) as totb
          from g5_member a
                   left join g5_write_cscenter b on a.mb_id = b.mb_id
         where b.wr_29 between '{$stx1}' and '{$stx2}' and b.wr_50 like '%{$stx7}%'
         group by a.mb_name, b.mb_id ORDER BY totb DESC

 

2개 join (csorder) sum()값이 정상적임

회원 닉네임때문에 member와 join


        select a.mb_name, b.mb_id,count(*) as cnt , sum(b.wr_31) as totb
          from g5_member a
                   left join g5_write_csorder b on a.mb_id = b.mb_id
         where b.wr_29 between '{$stx1}' and '{$stx2}' and b.wr_50 like '%{$stx7}%' and NOT b.wr_54 IN ('exchange') and NOT b.wr_7 IN ('4')
         group by a.mb_name, b.mb_id ORDER BY totb DESC

 

아래에 각각 cscenter와 csorder의 sum()값은 정상인데

2개를 함께한 가장 위 sum()값은 상황에 따라 너무 다르게 변하네요...

 

왜 변하는지를 알면 찾아보고 수정하거나 구글링을 해 볼텐데.. 이유조차 모르겠어서.. 답답합니다.

이 질문에 댓글 쓰기 :

답변 1

left join하시는 이유가 있나요?

inner join으로 바꾸어 보세요.

query에 문제가 있다면
결과가 하나도 나오지 않습니다.
현재는 어떤 결과가 나오는 것으로 보이는데 query문에는 에러가 없겠죠.

또 보니까 세 query에 있는 where 조건이 다르네요.

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

회원로그인

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