我正在使用cakephp 1.3。我在收入表中有日期字段。我想在一个循环中获得每月的总收入。以下是我的询问。
$income_and_hst = $Income->find('all', array(
'fields' => array('SUM(Income.amount) as income',
'SUM(Income.hst_amount) as hst',
'MONTH(date) as month'),
'conditions' => array(
'Income.income_account_id' => array(1,2,3,4),
'Income.user_id' => $this->Auth->user('id'),
'Income.account_id' => $this->Session->read('Account.default_account'),
'Income.date >' => $starting_date,
'Income.date <' => $ending_date,
),
'group' => 'MONTH(date)',
)
);
这给了我5个月的收入。因为收入是5个月。我需要显示所有12个月,即使其他月份没有收入。如果那个月没有收入我想要0。
有人可以给我一个方向吗?
谢谢。
答案 0 :(得分:0)
我的猜测是你无法使用该界面。您需要深入了解原始SQL(以及交叉连接),或者在周围的PHP代码中添加缺少的月份。我建议后者这样的东西应该工作(伪代码,我不记得php语法):
for ($row in $income_and_hst) {
$income_and_hst_all[$row['month']] = $row
}
for ($month = 1;$month <= 12; $month++) {
if ($income_and_hst_all[$month] == nil) {
$income_and_hst_all[$month] = Array (
'income' => 0,
'hst' => 0,
'month' => $month
)
}
}