Php 将当年每个月的表中数字相加

Php 将当年每个月的表中数字相加,php,mysql,Php,Mysql,我想知道到目前为止,最好的办法是把一年中每个月的数字加起来,然后打印出来 我的桌子现在看起来像这样 表名称:支出 列为“支付日期” 然后我想让它把每个月的所有数字加起来,然后像这样打印出来 January : 100,000 February : 2,300 e、 t.c 这可能吗 您可以按月份使用sum和grouping select month, sum(amount) from `data_values` group by month 看到它在行动吗 现在,如果表中有一个实际日期字段,

我想知道到目前为止,最好的办法是把一年中每个月的数字加起来,然后打印出来

我的桌子现在看起来像这样 表名称:支出

列为“支付日期”

然后我想让它把每个月的所有数字加起来,然后像这样打印出来

January : 100,000
February : 2,300
e、 t.c


这可能吗

您可以按月份使用sum和grouping

select month, sum(amount) from `data_values` group by month
看到它在行动吗

现在,如果表中有一个实际日期字段,则可以使用
monthname()
来获得所需的分组

看到它在行动吗


您可能需要添加一个额外的group by子句
year(pay_date)
,这样它就不会将年份混在一起。除非那是你想要的。请参见
select year(购买日期)、monthname(购买日期)、sum(金额)from data\u values group by year(购买日期)、monthname(购买日期)

您知道
DISTINCT
不是一个函数吗?是的,我脑子里忙着从sql server语法切换这些函数。感谢您的更正。“是的,我当时正忙于从sql server语法转换这些函数”
DISTINCT
在sql server中也不是一个函数,我想您需要喝点咖啡
DISTINCT
也可以顺便删除
groupby
已经返回了不同的值。最有效的方法是在php中这样做。您最好在另一个问题中问这个问题,理想情况下,您还可以提供JSON格式的示例数据集,以便更容易复制和回答。但一定要证明你自己做了什么,或者先证明你自己做了什么。否则,这个新问题将很快解决。
create table `data_values` (month varchar(50), amount decimal(18,2));
insert into `data_values` (month, amount) values ('January', 100),
('January', 50),
('Februari', 100),
('March', 100),
('April', 100),
('May', 100),
('May', 50),
('May', 25);
select month, sum(amount) from `data_values` group by month

month     sum(amount)
April     100
Februari  100
January   150
March     100
May       175
create table `data_values` (buy_date date, amount decimal(18,2));
insert into `data_values` (buy_date, amount) values ('2008-01-01', 100),
('2008-01-14', 50),
('2008-02-15', 100),
('2008-03-01', 100),
('2008-04-01', 100),
('2008-05-02', 100),
('2008-05-10', 50),
('2008-05-22', 25);
select monthname(buy_date), sum(amount) from `data_values` group by monthname(buy_date)

monthname(buy_date) sum(amount)
April               100
February            100
January             150
March               100
May                 175