2013-12-09 33 views
0

我想基於日期時間行總和人數。PHP MySQL,基於日期時間行的行的總和

這是我的表看起來像:

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  | 
---+-------------------+--------+ 

我想我的查詢做的是:和所有的人根據日期。但我認爲我的問題不是自我查詢(或者它可能),而是日期時間。我有一些像

$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

GROUPING BY一個靜態值沒有任何意義 - 你想按列分組,而不是按特定值分組。 (如果你想限制結果集的值只有一個特定的日期 - 這就是WHERE子句的用途。) – CBroe

+0

我知道,我actualy幾個小時前有正確的查詢,但我回顯錯誤的查詢結果。因爲查詢結果是數組,其中[0]是日期,[1]是實際人數:當2016年結果爲2016年時,P i應該首次計算出結果,因爲2013年(年)+ 3是2016年。 – Tomek

回答

0

什麼數據庫引擎你使用?

無論如何,這應該工作:

$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`) 

列名使用反引號日期字符串,你suming字符串

+0

+1正確的和他一直選擇相同的日期;) – Robert