2013-12-09 3 views
0

datetime 행을 기반으로하는 사람의 수를 합산하려고합니다.PHP MySQL, datetime 행을 기반으로하는 행의 합계

이 내 테이블과 같은 모습입니다 : 난 내 쿼리가 수행 할 작업을

id | date    | person | 
---+-------------------+--------+ 
1 |2013-12-26 00:00:00| 3  | 
---+-------------------+--------+  
2 |2013-12-26 00:00:00| 2  | 
---+-------------------+--------+ 
3 |2013-12-26 00:00:00| 3  | 
---+-------------------+--------+ 
4 |2018-10-21 00:00:00| 3  | 
---+-------------------+--------+ 

은 다음과 같습니다 합계 모든 사람 날짜를 기준으로. 하지만 내 문제는 자체 쿼리 (또는 어쩌면),하지만 datetime되지 않습니다 생각합니다. 내가

$date = "26.12.2013"; 
$date = strtotime(date("d.m.Y", strtotime($date))); 
$date = date("Y-m-d", $date); 
$query= "SELECT '$date', SUM('person') totalperson FROM table_name WHERE date='$date' GROUP BY '$date'"; 

같은 것을 가지고 있지만 반환 된 수는 2016이고 예상하는 것은 내 질문은 충분히 명확 바랍니다 8 :

입니다.

+1

이 테스트 할 수 없습니다 '그룹은 열 값 만 문제가 발생할 수 있습니다 date' 열 이름 날짜별로 열 이름'그룹에 by' 주위를 사용하지 않으면 – Miguelo

+1

정적 값에 의한 GROUP BY는 의미가 없습니다. 특정 값이 아닌 열별로 그룹화하려고합니다. (결과 집합을 값으로 만 특정 날짜로 제한하려면 WHERE 절을 사용해야합니다.) – CBroe

+0

몇 시간 전 정확한 쿼리가 있었지만 잘못된 쿼리 결과가 표시되었습니다. 쿼리 결과는 배열이므로 [0]은 날짜이고 [1]은 실제 사람 번호입니다. 2013 년 (year) + 3이 2016이므로 결과가 2016 일 때 P i는 처음으로 그 값을 알아 냈어야합니다. – Tomek

답변

0

무엇 DB 엔진을 suming된다 너 사용하니? 어쨌든

, 이것은 작동합니다 : 그것은 도움이되지만 그렇지 않을 경우

$date = "2013-12-26 00:00:00"; 
$query = " 
    SELECT date, SUM(person) totalperson 
    FROM table_name WHERE date='$date' 
    GROUP BY date 
"; 
+0

감사, 그 도움이 =) 플러스 내가 잘못된 쿼리 결과를 반복했다. 결과는 날짜 및 총 인원입니다. – Tomek

0
SELECT 
    date, 
    SUM(person) totalperson 
FROM table_name 
WHERE DATE(date) = '$date' 
GROUP BY date 

사용 DATE() 함수

당신이 날짜 시간 열 열 이름에 대한

4
SUM(`person`) 

사용 역 따옴표 날짜 문자열을 제공하고, 당신은 문자열을

+0

+1 올바른 그는 항상 같은 날짜를 선택;) – Robert