创建轻量级预算应用。我有一个数据库,两个表。
交易 - 日期,金额,供应商,category_id(单个数字) 类别 - 身份证,姓名,限额(每次可以花多少钱)
我目前正在使用下面的PHP打印按类别分组的所有交易金额的总和。我想要做的是显示每个分组的总数,但也显示相应的“名称”和“限制”。我也想写数学,所以从“限制”中减去每个“value_sum”,并显示差异。
示例:
杂货 - 花费:-12.00限制:200.00左:188.00
租金 - 租金:-3.00限额:200.00左:188.00
外出就餐 - 花费:-9.00限制:200.00左:188.00
公用事业 - 花费:-45.00限制:200.00左:188.00
<?php
$result = mysql_query("SELECT SUM(amount) AS value_sum FROM TRANSACTIONS group by category")
or die(mysql_error());
$number = value_sum;
while($row = mysql_fetch_array( $result )) {
echo "<div class='col1'>";
echo round ($row['value_sum'], 2);
echo "</div>";
}
?>
答案 0 :(得分:0)
未经测试,但我猜一个简单的连接可以解决这个问题:
SELECT SUM(`t1`.`amount`) AS `value_sum`, `t2`.`name`, `t2`.`limit`
FROM `transactions` AS `t1`
JOIN `categories` AS `t2`
ON `t1`.`category_id` = `t2`.`category`
GROUP BY `category`;
答案 1 :(得分:0)
您可以使用以下内容:
SELECT
(select cat.name from CATEGORIES where cat.id = tran.category_id limit 1) as Categorie,
SUM(tran.amount) as Spent,
(select cat.limite from CATEGORIES where cat.id = tran.category_id limit 1) as Limite,
(select cat.limite from CATEGORIES
where cat.id = tran.category_id limit 1)-(SUM(tran.amount)) AS Lefted
FROM TRANSACTIONS tran
group by tran.category_id;
我将limit var更改为limite,因为它是mysql的保留字;我也像表格描述一样使用category_id。