sql 좀 도와주세요 ㅠ..ㅠ...
어떤 회원의 포인트를 앞에서 부터 20개만 sum 하려면 어떻게 해야 할가요??? ㅠ..ㅠ...
$sql = "select sum(po_point) as sum_point from $g4[point_table] where mb_id = '$stx' ... ";
요기에서 막혀서...ㅠ..ㅠ...
$sql = "select sum(po_point) as sum_point from $g4[point_table] where mb_id = '$stx' ... ";
요기에서 막혀서...ㅠ..ㅠ...
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 13개
SELECT sum( po_point ) AS sum_point FROM g4_point WHERE mb_id = '$stx' ORDER BY po_id DESC LIMIT 0 , 20
이거 아닌가요?
"앞에서"라는게 가장 먼저 적립된 걸 말씀하시는 건지...
제가 이해를 잘못했나요?
limit는 출력 record의 갯수를 정의하쟎아요. ㅠ..ㅠ...
갑자기 왜 저걸..ㅡㅡ;
제 짧은 실력으론 안돼서...
다른 분께 패쓰..ㅡㅡ;;;;;
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를 해야 하겠네요. ㅠ..ㅠ...
걍 짭은 생각 --;
그러나 이 방법은 어떨런지요.
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;