테스트 사이트 - 개발 중인 베타 버전입니다

join sum() 합산 질문... 채택완료

밀랍 3년 전 조회 2,043

3개 join

</p>

<p>        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</p>

<p>

 

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

회원 닉네임때문에 member와 join

</p>

<p>        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</p>

<p>

 

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

회원 닉네임때문에 member와 join

</p>

<p>        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</p>

<p>

 

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

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

 

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

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트

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

inner join으로 바꾸어 보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

밀랍
3년 전
inner , right 등 다 해봤는데 값이 맞지가 않네요...
저 소스는 정상적으로 된 소스가 맞는건가요?
엑스엠엘
3년 전
query에 문제가 있다면
결과가 하나도 나오지 않습니다.
현재는 어떤 결과가 나오는 것으로 보이는데 query문에는 에러가 없겠죠.

또 보니까 세 query에 있는 where 조건이 다르네요.
밀랍
3년 전
where를 모두 제외시킨 후에 돌려봐도...
금액이 맞질 않습니다...

ㅠㅠ
밀랍
3년 전
어떤값은 *8 어떤값은 *3 어떤값은 정상... 이런식으로 출력이 되네요....
엑스엠엘
3년 전
데이터가 있는 DB에서
직접 해 보지 않는 한 답변드리기 곤란하군요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인