我有以下表格。生成按日期和部門分組的報告mysql
---+---------------+-------------+--------+
id | department_id | created | amount |
---+---------------+-------------+--------+
1 | 0 | 2016-05-05 | 500 |
2 | 2 | 2016-05-05 | 100 |
3 | 1 | 2016-05-05 | 160 |
4 | 2 | 2016-05-05 | 260 |
5 | 1 | 2016-05-04 | 100 |
6 | 0 | 2016-05-04 | 150 |
7 | 1 | 2016-05-04 | 160 |
8 | 2 | 2016-05-04 | 160 |
---+---------------+-------------+--------+
我要生成報告,以顯示多少收集有關於特殊的日子在特定部門&需要表現出像下表:
Date | 0 | 1 | 2 |
2016-05-05 | 500 | 160 | 360 |
2016-05-04 | 150 | 260 | 160 |
我使用CakePHP。如果我使用GROUP BY創建它的作品,並且如果我使用GROUP BY department_id,它就可以工作。但是我需要兩個GROUP BY來生成所需的報告。
我也嘗試使用this來生成從迄今爲止的數組。然後試圖運行GROUP BY使用下面的CakePHP查詢各創建日期:
//$ar = date array
foreach ($ar as $k) {
$this->Transaction->find('all',array('conditions'=>array('Transaction.created'=>$k),'fields'=>array('SUM(Transaction.amount) AS s','Transaction.department_id'),'group'=>array('Transaction.department_id')));
}
但似乎慢的解決方案給我,如果日期範圍較長。在單個查詢中有沒有最好的方法?
請幫我分揀這個問題。
@Strawberry我無法理解他的回答。其實我沒有在其中找到GROUP_BY。你能否詳細說明一下。 –
它不需要GROUP BY子句,因爲它只包含聚合列。相比之下,你的確需要一個GROUP BY子句,但我相信你可以弄清楚。 – Strawberry
其實我無法確定。所以在這裏問了這個問題。所以有人幫助我。 –