首先,对不起,如果我的问题标题听起来很蠢….我有下表.第一个表包含我的支出类型的名称,第二个表包含这些支出的金额和日期的信息.如果您注意到下面的第二个表,则有一个名为“ e_id”的字段,它是我从第一个表中支出的相应id值.
第一表名称:expense_type
id expense_name
1 Insurance
2 Interest Payment
3 Rent
4 Electricity
... and goes on like this (unlimited perhaps :))
第二表名称:expense_details
id e_id amount date
1 3 1000 2011-12-11
2 1 500 2011-12-19
3 4 10 2011-11-21
4 3 1000 2012-01-12
... and goes on like this )
现在我的计划是从这两个表中获取所有值,并生成如下结果.但是由于第一个表的信息数量未知(对我而言),我不知道如何编写查询(包括php和mysql)来生成这样的结果.
请您帮我实现此目标?
提前致谢 :)
附注:仅供参考,我正在使用Codeigniter.
**For the Month: January 2011**
Insurance : 1000
Rent : 3453
Electricity : 546
Interest Payment : 546
---------------------------------
**Total Expenses**: 938949 /// this value is just for an example
解决方法:
您可以在控制器或模型中执行此操作:
$sql = "SELECT a.*, b.expense_name FROM expense_details AS a, expense_name AS b WHERE a.e_id = b.id ORDER BY a.id ASC";
$data = $this->db->query($sql)->result_array();
$totals = array();
echo '**For the Month: January 2011**';
echo "\n\n";
foreach ($data as $item){
$totals[$item['expense_name']] = isset($totals[$item['expense_name']]) ? $totals[$item['expense_name']] + $item['amount'] : $item['amount']:
}
foreach ($totals as $name => $val){
echo $name.': '.$val;
echo "\n\n";
}
这不是最优雅或最稳定的方法,但我希望这可以帮助您了解需要做的事情.您可能还想按我想的月份分解总数.