我有一個查詢,我在一個範圍內每天運行多次。我想這減少到單個查詢:MYSQL Group按天數總和每天
SELECT SUM(amount) AS all_time_revenue
FROM charges WHERE DATE(`charges`.`created_at`) <= '2015-03-01'
我遇到一個問題,試圖將其轉換成一個單一的查詢 - 我不能GROUP BY
「created_at」因爲我之前拍攝的所有費用和日期。 (不只是那天)。不知道這是否可能,但我敢肯定,如果這裏有一位天才能解決這個問題。注意:如果我可以爲每一行返回myDate以及總和也會很好。
下面是我在做什麼一個完整的例子:
$start_time = new DateTime('2016-08-01');
$end_time = new DateTime('2016-08-14');
$data = [];
for ($start_time; $start_time < $end_time; $start_time = $start_time->modify('+1 day')) {
$date = $start_time->format("Y-m-d");
$results = DB::SELECT("SELECT SUM(amount) AS all_time_revenue
FROM charges
WHERE `charges`.`created_at` <= ? AND `charges`.`sandbox`=0",
", [$date]);
$data[$date] = $results[0]->all_time_revenue;
}
所以最好我想運行可以用日期範圍或天間隔的一個日期和數量,工作單查詢有它吐出像 行:
row 1: ['2016-08-01', 4000.00]
row 2: ['2016-08-02', 4500.00]
...
row 14:['2016-08-14', 15000.00]
請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-查詢 – Strawberry
這並不清楚'created_at'的數據類型是...是DATE嗎? DATETIME? $ mydate提供了哪些價值範圍? – spencer7593
謝謝,因爲我不知道@Strawberry在抱怨什麼。 –