前年の12月から今年の11月までの統計データを取得しようとしています。テーブルのdate
列のデータ型はdate
.
次の SQL は、年が手動で変更された場合にのみ機能するという明らかな問題がありますが、正常に機能します。この期間の動的に変化する年で同じことをどのように達成しますか?
SELECT date, SUM(numCalls) AS callTotal FROM callstats_callData
WHERE date BETWEEN '2011-12-01' AND '2012-11-01'
GROUP BY date ORDER BY date
データは、PHP によって MySQL テーブルから取得されています。
アップデート
以下のコードは機能しますが、SQL ベースのソリューションが必要でした。
$date1 = (date("Y") - 1) . '12-01';
$date2 = date("Y") . '-11-01';
$fetchTotals = $this->contentDB->prepare("SELECT date, SUM(numCalls) AS callTotal FROM callstats_callData
WHERE date BETWEEN ? AND ?
GROUP BY date ORDER BY date");
$fetchTotals->execute(array($date1, $date2));
$totals = $fetchTotals->fetchAll();
実施例
これは、Total Calls チャートの通話データをここで取得するためのものです。その期間の各月の合計を表示するには、結果をループで取得する必要があります。このページは現在、上記の PHP および MySQL コードを使用して適切に機能していますが、SQL ベースのソリューションを期待しています。