sql 좀 도와주세요 ㅠ..ㅠ...

어떤 회원의 포인트를 앞에서 부터 20개만 sum 하려면 어떻게 해야 할가요??? ㅠ..ㅠ...

$sql = "select sum(po_point) as sum_point from $g4[point_table] where mb_id = '$stx' ... ";

요기에서 막혀서...ㅠ..ㅠ...
|

댓글 13개

앞에서부터 20개라시면...

SELECT sum( po_point ) AS sum_point FROM g4_point WHERE mb_id = '$stx' ORDER BY po_id DESC LIMIT 0 , 20

이거 아닌가요?

"앞에서"라는게 가장 먼저 적립된 걸 말씀하시는 건지...

제가 이해를 잘못했나요?
가장 먼저 적립된거 부터인데요, 이렇게 하면 전체 sum이 나옵니다.
limit는 출력 record의 갯수를 정의하쟎아요. ㅠ..ㅠ...
앗 그러네요..ㅡㅡ;

갑자기 왜 저걸..ㅡㅡ;
point_list.php를 수정하구 이써요.
아 제가 답글 달은 거에 대한 한탄이었습니다..ㅡㅡ;
결국 for문으로 하시는 방법밖에 없을 듯 한데요?

제 짧은 실력으론 안돼서...

다른 분께 패쓰..ㅡㅡ;;;;;
for로 하기에는 traffic이... ㅠ..ㅠ...
이런 식으로 이중쿼리문을 쓰면 될 것입니다. (테스트는 안 해봤어요..)

select sum(po_point) from (select po_point from $g4[point_table] where mb_id = '$stx' order by po_id desc limit 20) as derivative

괄호 안에 최근 20개를 불러들인 파생테이블을 만들고, 그 결과의 sum을 구하는 방식으로 이해하시면 될 것 같네요. 저도 비슷하게 최근 6개 자료 중에 가장 큰 것을 고르라고 했더니 자꾸 전체중에서 가장 큰 값을 찾길래 고민하다가 해결했던 경험이 있네요. ^^
http://bomool.net/bbs/board.php?bo_table=bo0105&wr_id=8
sub query를 안쓰구 할 방법을 찾는건데 mysql 4.0.x에서 가능한 버젼은 못 만들겠네요.
그냥 sub query를 해야 하겠네요. ㅠ..ㅠ...
order by 에 날자를 sort하면 안될까요??

걍 짭은 생각 --;
20개의 record에 대한 sum을 할 수 없어요 ㅠ..ㅠ...
서브쿼리가 아니면 어려울듯합니다.

그러나 이 방법은 어떨런지요.

set @n := 0;set @pp := 0;select po_point, @pp := @pp + po_point, @n := @n+1 from g4_point where mb_id = '$stx' and @n < 20;
그냥 sub query로 했어요 ㅠ..ㅠ...
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
16년 전 조회 1,568
16년 전 조회 1,528
16년 전 조회 1,571
16년 전 조회 972
16년 전 조회 930
16년 전 조회 937
16년 전 조회 932
16년 전 조회 772
16년 전 조회 884
16년 전 조회 1,031
16년 전 조회 820
16년 전 조회 950
16년 전 조회 973
16년 전 조회 1,458
16년 전 조회 1,545
16년 전 조회 1,019
16년 전 조회 980
16년 전 조회 952
16년 전 조회 825
16년 전 조회 952