sql에서 비교구문 질문...
본문
select a.mb_id, b.mb_name, wr_21, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC
wr_29의 날짜안에 wr_31의 값을 더해서 순위를 정하는 소스입니다.
여기서 본인의 wr_10의 값과 동일한 값만 뽑고 싶은데 이건 어떻게 해야 하나요?
left outer join {$g5['member_table']} b on a.wr_10 = b.wr_10
이렇게 하면 될줄 알았는데 아무런 값도 안나오네요...
!-->
답변 3
on
a.mb_id = b.mb_id
and a.wr_10 = b.wr_10
이렇게 하면 되지않을가요??
날짜 데이터를 제대로 모르겠고 최근 오라클만 써봐서 헷갈린데
저 쿼리를 db 툴에서 돌려보셨나요? 아마 신택스 에러 떳을거같은데,,
날짜쪽 sum에서 오류날거같은데요? 그누쪽에서 날짜가 어떻게 들어갈진 모르겠으나
보통 2000-xx-xx 00:00 나 2000.00.00 00:00 이런식으로 들어갈텐데 sum 함수 안먹을겁니다
정규표현식으로 특수문자 제거를 하시던지 리플레이스로 특수문자만 제거해서 해보세요
select a.mb_id, b.mb_name, wr_21, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC
이코드가 현재 정확히 동작한다면 아래 내용을 확인해야합니다
1. 본인의 wr_10값과 동일한 값만 뽑아내고자 합니다 <= 이게 member 테이블의 wr_10 값과 write_table 의 wr_10 값이 동일한 것만 뽑아내려고 한다는 의미인가요 ?
그렇다면
select a.mb_id, b.mb_name, wr_21, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id and a.wr_10= = b.wr_10
where a.wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC
이렇게 해보세요
!-->!-->
답변을 작성하시기 전에 로그인 해주세요.