从表中为当前年度的每个月添加数字

zdwk9cvp  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(250)

我想知道到目前为止,把一年中每个月的数字加起来,然后打印出来的最好方法。
我的表当前类似于以下表名:payouts
列为付款日期
然后我希望它把每个月的所有数字加在paid栏中,然后像这样打印出来

January : 100,000
February : 2,300

e、 t.c.公司
这可能吗?

jei2mxaa

jei2mxaa1#

你可以按月份使用sum和grouping。

select month, sum(amount) from `data_values` group by month

看到它在行动http://sqlfiddle.com/#!2012年10月27日

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

现在,如果表中有实际日期字段,则可以使用 monthname() 得到你想要的分组
看到它在行动http://sqlfiddle.com/#!9月9日A1D6/1

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

您可能需要添加一个额外的GROUPBY子句 year(pay_date) 所以它不会把岁月混在一起。除非那是你想要的。看到了吗http://sqlfiddle.com/#!9月9日CC82/2 select year(buy_date), monthname(buy_date), sum(amount) from data_values group by year(buy_date), monthname(buy_date)

相关问题