Copy
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개 / 댓글 9개
채택된 답변
+20 포인트
2021-09-06 (월) 16:40:39
on
a.mb_id = b.mb_id
and a.wr_10 = b.wr_10
이렇게 하면 되지않을가요??
답변에 대한 댓글 1개
2021-09-06 (월) 16:52:43
넓은마인드
2021-09-06 (월) 17:58:53
Copy
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 값이 동일한 것만 뽑아내려고 한다는 의미인가요 ?
그렇다면
Copy
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
이렇게 해보세요
답변에 대한 댓글 1개
2021-09-06 (월) 18:13:24
on a.mb_id = b.mb_id
뒤에
and a.wr_10 = b.wr_10을 추가해봤으나
값이 아무것도 안나옵니다.
뒤에
and a.wr_10 = b.wr_10을 추가해봤으나
값이 아무것도 안나옵니다.
날짜 데이터를 제대로 모르겠고 최근 오라클만 써봐서 헷갈린데
저 쿼리를 db 툴에서 돌려보셨나요? 아마 신택스 에러 떳을거같은데,,
날짜쪽 sum에서 오류날거같은데요? 그누쪽에서 날짜가 어떻게 들어갈진 모르겠으나
보통 2000-xx-xx 00:00 나 2000.00.00 00:00 이런식으로 들어갈텐데 sum 함수 안먹을겁니다
정규표현식으로 특수문자 제거를 하시던지 리플레이스로 특수문자만 제거해서 해보세요
답변에 대한 댓글 7개
2021-09-06 (월) 17:17:03
[code]
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
[/code]
현재 이 소스로 회원들 순위를 매기고 있습니다.
값 또한 정상적으로 나오고 있습니다.
제가 질문을 잘못 한건지... 본인의 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
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC
[/code]
현재 이 소스로 회원들 순위를 매기고 있습니다.
값 또한 정상적으로 나오고 있습니다.
제가 질문을 잘못 한건지... 본인의 wr_10값과 동일한 값만 뽑아내고자 합니다.
2021-09-06 (월) 17:37:03
and a.wr_10 = b.wr_10
이 구문을 넣으면 아무것도 안나옵니다.
on a.mb_id = b.mb_id 이걸 wr_10으로 바꿔도 아무것도 안나오고...
제가 초보라... ㅠㅠ
이 구문을 넣으면 아무것도 안나옵니다.
on a.mb_id = b.mb_id 이걸 wr_10으로 바꿔도 아무것도 안나오고...
제가 초보라... ㅠㅠ
의뢰자15
2021-09-06 (월) 18:08:12
질문에 의도를 명확하게 이해하기가 어렵습니다..
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
이게 기존 쿼리에요??
여기서 on 절에
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id and a._wr_10 = b.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
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC
이게 기존 쿼리에요??
여기서 on 절에
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id and a._wr_10 = b.wr_10 이렇게 넣으면 데이터가 아무것도 없다 이 말씀인지
신택스 에러가 떳는지를 확인을 못하시니..
write_table 테이블에 wr_10 컬럼에는 값은있나요?
2021-09-06 (월) 18:15:08
맞습니다.
기존쿼리가 댓글에 적어놓은 쿼리입니다.
이상없이 순위와 합계금액이 잘 나오고 있습니다.
여기에서 wr_10값이 같은 것만 뿌려주고 싶어서
and a.wr_10 = b.wr_10 을 넣으니 아무런 값도 나오지 않습니다.
wr_10값은 서울, 부산, 광주 이렇게 다들 잘 들어가 있습니다.
기존쿼리가 댓글에 적어놓은 쿼리입니다.
이상없이 순위와 합계금액이 잘 나오고 있습니다.
여기에서 wr_10값이 같은 것만 뿌려주고 싶어서
and a.wr_10 = b.wr_10 을 넣으니 아무런 값도 나오지 않습니다.
wr_10값은 서울, 부산, 광주 이렇게 다들 잘 들어가 있습니다.
의뢰자15
2021-09-06 (월) 18:37:20
테이블안에 값이있는지 부터 확인을 해보셔야될거같네요
데이터 구성이 어떻게 되있는지 제가 상상해서 그릴수도없는 노릇이라 대충 흉내만 한번 내봤는데
join 에서 일치값이 없어서 그런거라고 밖에 말씀을 못드릴거같네요
데이터 구성이 어떻게 되있는지 제가 상상해서 그릴수도없는 노릇이라 대충 흉내만 한번 내봤는데
join 에서 일치값이 없어서 그런거라고 밖에 말씀을 못드릴거같네요
2021-09-06 (월) 19:26:03
리스트에서 <?php echo $list[$i]['wr_10'] ?>
으로 찍어보면 각각 wr_10 값이 잘 나오고 있습니다....
으로 찍어보면 각각 wr_10 값이 잘 나오고 있습니다....
답변을 작성하려면 로그인이 필요합니다.
값이 아무것도 안나오더라구요.. ㅠㅠ