2011-02-16 70 views
0

我需要提供自特定月份和年份以來我們的mysql數據庫使用的帶寬的月度報告,例如, 2009年11月,我可以使用以下查詢輸出任何特定月份的正確數據;獲取從指定月份到當月的每個月的數據

$query='SELECT SUM(radacct.AcctInputOctets) AS uploads,SUM(radacct.AcctOutputOctets) AS downloads FROM radacct WHERE radacct.AcctStartTime BETWEEN "2010-11-00" AND "2010-12-00"'; 
    $result = mysql_query($query); 
    $row = mysql_fetch_array($result); 
    echo '<tr><td>December</td><td>'.$uploads.'</td><td>'.$downloads.'</td></tr>'; 

我需要把這個成從定義的下月起即開始$ =「2009-11-00」,並打印出每月直至幷包括當前月份創紀錄的一環。無論我嘗試什麼,我都無法讓它工作!

+1

你說「不管你嘗試了什麼「,你試過了什麼?這似乎是一個相當簡單的循環,在開始日期和結束日期之間添加一個月直到指定的日期就足夠了。 – anothershrubery 2011-02-16 12:19:27

+0

首先你需要一些月份的生成器,並計算需要查詢的月份數(N次)..那麼它只是從0到N循環,並生成月,發送它查詢和添加結果..不是很好在PHP所以只是想法.. – Raven 2011-02-16 12:22:17

回答

2

添加分組參數:

SELECT year(radacct.AcctStartTime), month(radacct.AcctStartTime), ... 
FROM ... 
WHERE radacct.AcctStartTime > '2010-09-00' 
GROUP BY year(radacct.AcctStartTime), month(radacct.AcctStartTime) 

這將使你每年/月已在數據庫中的至少一個項目的彙總數據,自2010年九月