实现同环比的简单SQL

同环比是企业最常见的需求之一,如何快速的在数据库中实现同环比,以下为本人得到的一些简单经验,还望大神指正:

一、在程序中定义变量实现
要在程序中定义变量,那么就是研究如何得到取同环比的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     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值