이전 목록 다음
채택완료

sql join 질문...

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

이 값과 

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

 

의 as tot 값이 틀린데...

이유를 아시는 분 계신가요?

 

회원member  join 값과 g5_write_csorder 의 join 값이 틀려서...

제가 이해를 잘못하고 있나 싶어서 질문드립니다.

 

어차피 둘다 g5_write_cscenter의 wr_31 합산 금액이 아닌가요?

 

        $result = sql_query($sql, TRUE);
        while ($row = sql_fetch_array($result)) {

 

}

로 돌리고 있습니다.

답변 1개 / 댓글 3개

채택된 답변
+20 포인트

둘다 g5_write_cscenter 테이블의 wr_31의 합산금액은 맞지만

합산을 위한 추출조건이 다르네요

join 테이블이 

첫번째는 g5_write_csorder

두번째는 g5_member

 

테이블명으로 추론해서 설명하면

첫번째는  주문자중에서 센터에 포함된 사용자가 조건이고

두번째는  회원전체중에서 센터에 포함된 사용자가 조건이 되죠

 

따라서 합산이 일치하는경우는 회원이 둘다 동일할때만 입니다.

답변에 대한 댓글 3개

cscenter에서 멤버회원과 중복된
cscenter에서 csorder와 중복된 걸 검색하는게 아닌

멤버회원에서 cscenter가 포함된,
csorder 에서 cscenter가 포함된 사용자라는 말씀이시죠?



그런데 위아래를 바꿔봐도 sum 금액이 변동되는건 무엇때문인가요?
위아래를 바꾼다는게 무슨말씀이신지 ... 이해가 안가네요
[code]
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
[/code]

말씀하신대로...

g5_member가 포함된 cscenter
g5_member가 포함된 csorder

이렇게 바꿔봐도 금액은 맞질 않네요...

um(b.wr_31) as totb, sum(c.wr_31) as totc 이걸 맞춰야 하는데...

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

🐛 버그신고