DB2同比环比

新建测试表sales_test

新建测试表,并插入数据进行查看

create table sales_test(
time date,
sales float
);

查看数据

select * from sales_test;
DB2同比环比_第1张图片

原理

DB2可以使用英语来执行日期和时间计算:
current date + 1 YEAR
current date + 3 YEARS + 2 MONTHS + 15 DAYS
current time + 5 HOURS - 3 MINUTES + 10 SECONDS

以2017-01-04 16:46:47为例,做日期和时间的计算操作

values current date + 1 YEAR;
values current date + 3 YEARS + 2 MONTHS + 15 days;
values current time;
values current time + 5 HOURS - 3 MINUTES + 10 SECONDS;

得到的结果将是:
2018-01-04
2020-03-19
21:43:57
因此,求同环比的时候可以通过对日期进行计算求出去年当日和上月当日,再通过where语句即可求出同比环比销售额。
而在mysql中使用date_add()函数做日期加减操作。
如,

date_add(time, interval 1 day)
DB2同比环比_第2张图片

实例

求环比

select time,sales,pre_sales,(sales-pre_sales)/pre_sales as rate from 
(select time,sales,
(select sales from  sales_test b where b.time=a.time-1 day) as pre_sales
from sales_test a);
DB2同比环比_第3张图片

求同比

select time,sales,pre_sales,(sales-pre_sales)/pre_sales as rate from 
(select time,sales,
(select sales from  sales_test b where b.time=a.time-1 year) as pre_sales
from sales_test a);
DB2同比环比_第4张图片

你可能感兴趣的:(DB2同比环比)