同环比是企业最常见的需求之一,如何快速的在数据库中实现同环比,以下为本人得到的一些简单经验,还望大神指正:
一、在程序中定义变量实现
要在程序中定义变量,那么就是研究如何得到取同环比的sql语句。
建立一张用于试验的表,内容包括日期、数量、吊牌金额和成交金额
SQL> create table retail(id number(10,0) primary key,billdate varchar2(8) not null,qty number(6,0) not null,tot_amt_list number(8,2) not null,tot_amt_actual number(8,2) not null);
Table created.
SQL> desc retail;
Name Null? Type
---------------------------- -------- ----------------------------
ID NOT NULL NUMBER(10)
BILLDATE NOT NULL VARCHAR2(8)
QTY NOT NULL NUMBER(6)
TOT_AMT_LIST NOT NULL NUMBER(8,2)
TOT_AMT_ACTUAL NOT NULL NUMBER(8,2)
SQL> select * from retail where billdate between 20170501 and 20170503;
ID BILLDATE QTY TOT_AMT_LIST TOT_AMT_ACTUAL
---------- -------- ---------- ------------ --------------
1001 20170501 3 12000 10000
1002 20170502 2 11000 9000
1003 20170503 1 10000 8000
SQL> select * from retail where billdate between 20160501 and 20160503;
ID BILLDATE QTY TOT_AMT_LIST TOT_AMT_ACTUAL
---------- -------- ---------- ------------ --------------
1004 20160501 5 10000 8000
1005 20160502 5 15000 8000
1006 20160503 1 5000 5000
SQL> select * from retail where billdate between 20170401 and 20170403;
ID BILLDATE QTY TOT_AMT_LIST TOT_AMT_ACTUAL
---------- -------- ---------- ------------ --------------
1007 20170401