gpt4 book ai didi

php - 如何连接两个表,然后显示一个表从另一个表收集的每个数据的总和值

转载 作者:可可西里 更新时间:2023-11-01 08:07:28 26 4
gpt4 key购买 nike

首先抱歉,如果我的问题标题听起来很愚蠢……我有以下表格。第一个表包含我的费用类型的名称,第二个表包含这些费用的金额和日期信息。如果您注意到下面的第二个表,有一个名为“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)来生成这样的结果。

能否请您帮助我如何实现这一目标?

提前致谢:)

P.S 仅供引用,我正在使用 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

最佳答案

你可以使用

SELECT expense_name, SUM(amount) as monthly_total
FROM expense_details, expense_type
WHERE expense_type.id=expense_details.e_id
AND `date` >= '2011-01-01'
AND `date` < '2011-02-01'
GROUP BY expense_details.e_id;

然后根据需要格式化。注意 date 是反引号,因为它也是 MySQL 中的一个函数。

要更改月份,只需执行 `date >= 'yyyy-mm-01' AND date < 'yyyy-(mm+1)-01'(除非 mm` 是十二月...)。

你也可以这样做

WHERE MONTH(`date`)=1 AND YEAR(`date`)=2011, 

WHERE `date`>='yyyy-mm-dd' AND `date`<DATE_ADD('yyyy-mm-dd',INTERVAL 1 MONTH)

2011 年 1 月(看看 here ),但我认为如果您没有日期索引,它会慢一点(当然,您选择哪种方法取决于您正在筛选的预期记录数,数据库是如何设置的,等等——但为什么不试试几个版本,看看哪个适合你呢?)

关于php - 如何连接两个表,然后显示一个表从另一个表收集的每个数据的总和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8645137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com