sql 좀 도와주세요 ㅠ..ㅠ... > 그누4 질문답변

그누4 질문답변

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

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

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

본문

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

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

요기에서 막혀서...ㅠ..ㅠ...
  • 복사

댓글 전체

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

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

이거 아닌가요?

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

제가 이해를 잘못했나요?
이런 식으로 이중쿼리문을 쓰면 될 것입니다. (테스트는 안 해봤어요..)

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
서브쿼리가 아니면 어려울듯합니다.

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

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;
© SIRSOFT
현재 페이지 제일 처음으로