【发布时间】:2014-11-20 18:22:57
【问题描述】:
我有一个包含事务的 2 列表,其中存储了更改时间 (unix_time) 和更改值。
create table transactions (
changed int(11),
points int(11)
);
insert into transactions values (UNIX_TIMESTAMP('2014-03-27 03:00:00'), +100);
insert into transactions values (UNIX_TIMESTAMP('2014-05-02 03:00:00'), +100);
insert into transactions values (UNIX_TIMESTAMP('2015-01-01 03:00:00'), -100);
insert into transactions values (UNIX_TIMESTAMP('2015-05-01 03:00:00'), +150);
要获得当前余额,您需要对所有值求和,如果要从过去获得余额,则如果该值的更改时间小于请求的值,则需要求和,例如:
select
sum(case when changed < unix_timestamp('2013-12-01') then
points
else
0
end) as cash_balance_2013_11,
...
所以每个月都需要一个单独的 SQL 代码。我想拥有可以为我提供所有月份余额的 SQL 代码。 (例如从固定日期到现在)
编辑:
【问题讨论】:
-
您可以按此处stackoverflow.com/questions/4342370/… 进行分组
-
@Horst Walter:据我所知,这将在一个月内给我带来变化。要获得余额,您不仅需要对给定月份的所有先前值求和。