-----------------------------------------------------------------------------------------------------------------

    eb_rp_pertrancereportday(个人网银业务状况明细日报表).sql

 from sysobjects where name = 'eb_rp_pertrancereportday' and type = 'P')
    drop procedure eb_rp_pertrancereportday
go

))     --个人网银业务状况明细日报表
as
begin
    )
    )

    declare @iitrnm int                            --期初行内转账笔数
    ,)                --期初行内转账金额
    declare @intrnm int                            --新增行内转账笔数
    ,)                --新增行内转账金额
    declare @ietrnm int                            --期末行内转账笔数
    ,)                --期末行内转账金额

    declare @oitrnm int                            --期初跨行转账笔数
    ,)                --期初跨行转账金额
    declare @ontrnm int                            --新增跨行转账笔数
    ,)                --新增跨行转账金额
    declare @oetrnm int                            --期末跨行转账笔数
    ,)                --期末跨行转账金额

    declare @aitrnm int                            --期初总计转账笔数
    ,)                --期初总计转账金额
    declare @antrnm int                            --新增总计转账笔数
    ,)                --新增总计转账金额
    declare @aetrnm int                            --期末总计转账笔数
    ,)                --期末总计转账金额

    )                --今天first 格式yyyy-mm-dd
    )                --明天end 格式yyyy-mm-dd
    )             --昨天last 格式yyyymmdd
    )                --明天  格式yyyymmdd
    select @f_rprtdt = convert(varchar,datepart(yy,@rprtdt))+"-"+convert(varchar,datepart(mm,@rprtdt))+"-"+convert(varchar,datepart(dd,@rprtdt))
    ,)
    select @e_rprtdt = convert(varchar,datepart(yy,@n_rprtdt))+"-"+convert(varchar,datepart(mm,@n_rprtdt))+"-"+convert(varchar,datepart(dd,@n_rprtdt))
    ,)

    --取网点号
    ' order by brchno for read only
    open cur_rprt
    fetch cur_rprt into @brchno,@brchna

    begin    

         ')
        begin

            select @iitram = 0.00

            select @intram = 0.00

            select @ietram = 0.00

            select @oitram = 0.00

            select @ontram = 0.00

            select @oetram = 0.00

            select @aitram = 0.00

            select @antram = 0.00

            select @aetram = 0.00
        end
        else begin
            '
            '
            '
        end

        --新增(当天)行内转账笔数和金额
        ), @intram = sum(tranam) from epc_flog a, epc_cifx b where a.mastid = b.mastid and senddt >= @f_rprtdt and senddt < @e_rprtdt and b.brchid = @brchno and a.status = 'success' and tranna = '/transfer/transferInBank'
        --新增(当天)跨行转账笔数和金额
        ), @ontram = sum(tranam) from epc_flog a, epc_cifx b where a.mastid = b.mastid and senddt >= @f_rprtdt and senddt < @e_rprtdt and b.brchid = @brchno and a.status = 'success' and tranna = '/transfer/transferOutBank'

        if @iitram is null
        begin
            select @iitram = 0.00
        end

        if @intram is null
        begin
            select @intram = 0.00
        end

        if @ietram is null
        begin
            select @ietram = 0.00
        end            

        if @oitram is null
        begin
            select @oitram = 0.00
        end

        if @ontram is null
        begin
            select @ontram = 0.00
        end

        if @oetram is null
        begin
            select @oetram = 0.00
        end

        if @aitram is null
        begin
            select @aitram = 0.00
        end

        if @antram is null
        begin
            select @antram = 0.00
        end

        if @aetram is null
        begin
            select @aetram = 0.00
        end

        select @antrnm = @intrnm + @ontrnm  --当天新增转账笔数合计
        select @antram = @intram + @ontram  --当天新增转账金额合计

        select @ietrnm = @iitrnm + @intrnm  --本期行内转账笔数
        select @oetrnm = @oitrnm + @ontrnm    --本期跨行转账笔数
        select @aetrnm = @aitrnm + @antrnm    --本期合计转账笔数    

        select @ietram = @iitram + @intram   --本期行内转账金额
        select @oetram = @oitram + @ontram     --本期跨行转账金额
        select @aetram = @aitram + @antram     --本期行内转账金额

        ')
        fetch cur_rprt into @brchno,@brchna
    end
    close cur_rprt
    deallocate cursor cur_rprt

end
go

-----------------------------------------------------------------------------------------------------------------

    eb_rp_pertrancereportmonth(个人网银业务状况明细月报表).sql

 from sysobjects where name = 'eb_rp_pertrancereportmonth' and type = 'P')
    drop procedure eb_rp_pertrancereportmonth
go

))     --个人网银业务状况明细月报表
as
begin
    )
    )

    declare @iitrnm int                            --期初行内转账笔数
    ,)                --期初行内转账金额
    declare @intrnm int                            --新增行内转账笔数
    ,)                --新增行内转账金额
    declare @ietrnm int                            --期末行内转账笔数
    ,)                --期末行内转账金额

    declare @oitrnm int                            --期初跨行转账笔数
    ,)                --期初跨行转账金额
    declare @ontrnm int                            --新增跨行转账笔数
    ,)                --新增跨行转账金额
    declare @oetrnm int                            --期末跨行转账笔数
    ,)                --期末跨行转账金额

    declare @aitrnm int                            --期初总计转账笔数
    ,)                --期初总计转账金额
    declare @antrnm int                            --新增总计转账笔数
    ,)                --新增总计转账金额
    declare @aetrnm int                            --期末总计转账笔数
    ,)                --期末总计转账金额

    )                --当月第一天
    )                --当月最后一天
    )                --上月最后一天    

    ),()),)
    ,,),()))),)
    --上月最后一天
    ,),())),)

    --取网点号
    ' order by brchno for read only
    open cur_rprt
    fetch cur_rprt into @brchno,@brchna

    begin    

         ')
        begin

            select @iitram = 0.00

            select @intram = 0.00

            select @ietram = 0.00

            select @oitram = 0.00

            select @ontram = 0.00

            select @oetram = 0.00

            select @aitram = 0.00

            select @antram = 0.00

            select @aetram = 0.00
        end
        else begin
            --
            '
            '
            '
        end
            '
            '
            '
            '
        if @iitram is null
        begin
            select @iitram = 0.00
        end

        if @intram is null
        begin
            select @intram = 0.00
        end

        if @ietram is null
        begin
            select @ietram = 0.00
        end            

        if @oitram is null
        begin
            select @oitram = 0.00
        end

        if @ontram is null
        begin
            select @ontram = 0.00
        end

        if @oetram is null
        begin
            select @oetram = 0.00
        end

        if @aitram is null
        begin
            select @aitram = 0.00
        end

        if @antram is null
        begin
            select @antram = 0.00
        end

        if @aetram is null
        begin
            select @aetram = 0.00
        end

        select @antrnm = @intrnm + @ontrnm  --当月新增转账笔数合计
        select @antram = @intram + @ontram  --当月新增转账金额合计 

        select @ietrnm = @iitrnm + @intrnm  --本期行内转账笔数
        select @oetrnm = @oitrnm + @ontrnm    --本期跨行转账笔数
        select @aetrnm = @aitrnm + @antrnm    --本期合计转账笔数    

        select @ietram = @iitram + @intram   --本期行内转账金额
        select @oetram = @oitram + @ontram     --本期行内转账金额
        select @aetram = @aitram + @antram     --本期行内转账金额

        ')
        fetch cur_rprt into @brchno,@brchna
    end
    close cur_rprt
    deallocate cursor cur_rprt

end
go

-----------------------------------------------------------------------------------------------------------------

    报表.sql---我写的

---------------网银新统计报表总表
create table dbo.emc_cprt (
mainid     int              identity not null ,
rprtdt     smalldatetime         null ,
status     )               null ,
rptype     )               null ,
rprtcs     )               null ,--2:个人网银交易统计
constraint pk_emc_cprt primary key nonclustered (mainid)
)

-----------------个人网银交易统计
create table dbo.emp_trpt (
mainid     int              identity not null ,
rprtdt     smalldatetime         null ,
iitrnm int NULL ,                            --期初行内转账笔数
iitram ,) null,        --期初行内转账金额
intrnm int NULL ,                            --新增行内转账笔数
intram ,) null,        --新增行内转账金额
ietrnm int NULL ,                            --期末行内转账笔数
ietram ,) null,        --期末行内转账金额
oitrnm int NULL ,                            --期初跨行转账笔数
oitram ,) null,        --期初跨行转账金额
ontrnm int NULL ,                            --新增跨行转账笔数
ontram ,) null,        --新增跨行转账金额
oetrnm int NULL ,                            --期末跨行转账笔数
oetram ,) null,        --期末跨行转账金额
aitrnm int NULL ,                            --期初总计转账笔数
aitram ,) null,        --期初总计转账金额
antrnm int NULL ,                            --新增总计转账笔数
antram ,) null,        --新增总计转账金额
aetrnm int NULL ,                            --期末总计转账笔数
aetram ,) null,        --期末总计转账金额
rptpfg     )               null ,    -- 0:日报表 1:月报表 2:季报表 3:年报表
constraint pk_emp_trpt primary key nonclustered (mainid)
)

-----------------个人交易流水表
create table dbo.epc_flog (
mainid     int              identity not null ,
senddt     smalldatetime         null ,        --交易时间
brchno     )           null ,        --机构号
custid     )           null ,        --客户号
trancd     )           null ,        --交易码   (其实是一种类型,,暂时用1表示行内,2表示跨行)
tranam     ,)          null ,    --交易金额
tranfe         ,)          null,        --交易手续费
constraint pk_epc_flog primary key nonclustered (mainid)
)

--功能:
--1、可按日、月维度统计转账交易的统计
--2、eb_rp_pertrancereportday查询epc_flog表,统计出当天的交易量,并写入到emp_trpt表
--3、eb_rp_pertrancereportmonth从emp_trpt表查询该月每天的交易量并进行统计,统计结果也写入到emp_trpt表
--4、统计的图表可使用饼状图、柱状图或曲线图
--5、批处理类报表:
----a.用曲线图展示每天交易量(金额)同时显示其交易笔数,查询条件:日期范围、指定转账类型
----b.用饼状图展示指定月行内转账和跨行转账的笔数和金额,查询条件:指定月份
----c.用柱状图展示最近6个月中每月的交易笔数和交易金额
--6、实时类报表:
----用柱状图展示当天的交易量(笔数和交易金额)

------------------------------------------------------------------------------------------------------------------
-----------------个人交易流水表
create table epc_flog (
mainid     int              identity not null ,
senddt     smalldatetime         null ,        --交易时间
brchno     )           null ,        --机构号
custid     )           null ,        --客户号
trancd     )           null ,        --交易码   (其实是一种类型,,暂时用1表示行内,2表示跨行)
tranam     ,)          null ,    --交易金额
tranfe         ,)          null,        --交易手续费
constraint pk_epc_flog primary key nonclustered (mainid)
)

-----------------个人网银交易统计
create table dbo.emp_trpt (
mainid     int              identity not null ,

rprtdt     smalldatetime         null ,

intrnm int NULL ,            --新增行内转账笔数
intram ,) null,        --新增行内转账金额

ontrnm int NULL ,            --新增跨行转账笔数
ontram ,) null,        --新增跨行转账金额

rptpfg     )               null ,    -- 0:日报表 1:月报表 2:季报表 3:年报表
constraint pk_emp_trpt primary key nonclustered (mainid)
)

---创建存储过程.
create or replace procedure  p_pertrancereportday(pdate in date)
    as

        Cursor my_cursor
        is
        ) pcount,sum(TRANAM) pamount
        from EPC_FLOG
            ' hour) and pdate
            group by TRANCD ;

        c_row my_cursor%rowtype ;

    begin

        for c_row in my_cursor loop

            ' then

           insert into EMP_TRPT(RPRTDT,INTRNM,INTRAM,ONTRNM,ONTRAM,RPTPFG)
           ,');
        else
           insert into  EMP_TRPT(RPRTDT,INTRNM,INTRAM,ONTRNM,ONTRAM,RPTPFG)
           ,');
        end if;

        end loop;
    end;

----存储过程的调用
declare
pdate date:= to_date('2013-07-08 17:00:00','yyyy-MM-dd hh24:mi:ss') ;
begin

p_pertrancereportday(pdate);
end;
/

----创建存储过程 (月统计,不可用)

create or replace procedure p_pertrancereportmonth(pdate in date)
    as
        --定义变量
        pintrnm EMP_TRPT.INTRNM%TYPE;
        pintram EMP_TRPT.INTRAM%TYPE;
        pontrnm EMP_TRPT.ONTRNM%TYPE;
        pontram EMP_TRPT.ONTRAM%TYPE;
    begin

        select  sum(INTRNM) into pintrnm, sum(INTRAM) into pintram, sum(ONTRNM) into pontrnm, sum(ONTRAM) into pontram ,--这里的聚合函数只能有一个
        from EMP_TRPT
            ' and  RPRTDT between trunc(pdate,'MON') and pdate ; --用到了oracle的时间函数

        if SQL%FOUND then
             insert into EMP_TRPT(RPRTDT,INTRNM,INTRAM,ONTRNM,ONTRAM,RPTPFG)
             ');
        end if;
        commit;
    end;

-----调用与前一个一样

--创建序列
      drop sequence emp_trpt_tb_seq;
      create sequence emp_trpt_tb_seq
               increment
               start ;
--创建序列
 create or replace trigger emp_trpt_tb_tri
          before insert on emp_trpt
          for each row
          begin
                 select emp_trpt_tb_seq.nextval into :new.MAINID from dual;
          end;

----创建存储过程(月统计,可用)

create or replace procedure p_pertrancereportmonth(pdate in date)
    as
        Cursor my_cursor
        is
        select  sum(INTRNM) pintrnm, sum(INTRAM) pintram, sum(ONTRNM) pontrnm, sum(ONTRAM) pontram
        from EMP_TRPT
            ' and  RPRTDT between trunc(pdate,'MON') and pdate ; --用到了oracle的时间函数

        c_row my_cursor%rowtype ;
    begin

        for c_row in my_cursor loop

          insert into EMP_TRPT(RPRTDT,INTRNM,INTRAM,ONTRNM,ONTRAM,RPTPFG)
             ');

        end loop;

    end;

temp-存储过程 以前的的更多相关文章

  1. mysql存储过程--学习

    -- 存储过程示例一   inDROP DATABASE IF EXISTS tdemo;CREATE DATABASE tdemo CHARACTER SET=utf8; USE tdemo;CRE ...

  2. SQL 存储过程(转帖摘录)

    篇一: 创建存储过程     Create Proc dbo.存储过程名 存储过程参数     AS     执行语句     RETURN     执行存储过程     GO *********** ...

  3. sql server存儲過程語法

    -- 变量的声明,sql里面声明变量时必须在变量前加@符号    DECLARE @I INT -- 变量的赋值,变量赋值时变量前必须加set    SET @I = 30 -- 声明多个变量    ...

  4. 【SQL】SQL存储过程相关当前理解。(@temp=……)

    1.下图左侧红框中的是SQL的存储过程,是程序同SQL之间互相调用的函数.——这里先作为了解不做深入研究. 比如客户通过ATM提款机取200元钱,程序中提交取200元钱操作,后续可能会进入SQL进行一 ...

  5. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  6. Mysql - 存储过程/自定义函数

    在数据库操作中, 尤其是碰到一些复杂一些的系统, 不可避免的, 会用到函数/自定义函数, 或者存储过程. 实际项目中, 自定义函数和存储过程是越少越好, 因为这个东西多了, 也是一个非常难以维护的地方 ...

  7. SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二: ...

  8. 存储过程 Row_number() 分页

    ---恢复内容开始--- 自己之前一直是使用的通用的存储过程 ,也是封装好的只要传表名 + 条件 等等 来到新环境 让自己写一个存储过程, 没办法 自己就需要写一个咯 之前写的比较多的是 按 top ...

  9. SQL存储过程基础(从基础开始学,加油!)

    Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...

  10. sqL编程篇(三) 游标与存储过程

    sql编程2 游标与存储过程 sql编程中的游标的使用:提供的一种对查询的结果集进行逐行处理的一种方式不用游标的处理解决方式:逐行修改工资update salar set 工资=‘新工资’ where ...

随机推荐

  1. 利用 :before :after伪类实现鼠标悬浮动画效果

    1.最近在逛网站的时候,想找一下喜欢的鼠标悬浮效果,避免广告的嫌疑,直接放图了: 2.在实现的时候,如果在直接使用鼠标hover ,transform,进行过渡,不能达到想要的效果,因为同时只能触发一 ...

  2. 谈谈Golang中goroutine的调度问题

    goroutine的调度问题,同样也是我之前面试的问题,不过这个问题我当时并不是很清楚,回来以后立马查阅资料,现整理出来备忘. 有一些预备知识需要说明,就是操作系统中的线程.操作系统中的线程分为两种: ...

  3. .Net Framework下对Dapper二次封装迁移到.Net Core2.0遇到的问题以及对Dapper的封装介绍

    今天成功把.Net Framework下使用Dapper进行封装的ORM成功迁移到.Net Core 2.0上,在迁移的过程中也遇到一些很有意思的问题,值得和大家分享一下.下面我会还原迁移的每一个过程 ...

  4. 论林耐斯-Linux系统的重要性

    Linux--LinNaiSi系统的重要性... ===================================================== 飞机的控制系统.银行的系统.手机的系统我们 ...

  5. mysql存储过程查询结果循环遍历 判断 赋值 游标等基本操作

    一.首先说下本篇博客所实现功能的背景和功能是怎样的: 背景:因为公司项目开始迁移新平台项目,所以以前的平台老数据以及订单信息需要拆分表,而且需要业务逻辑来分析以前的订单表,来拆分成另外的几个新表,包括 ...

  6. 【渗透课程】第三篇-体验http协议的应用

    之前我们都了解了,访问网页时,客户端与服务端之间的请求与响应数据交互.本篇就浅谈它的应用. 利用HTTP拦截突破前段验证 比方说,我们在某个网页提交某些数据(例如留言.上传.插入xss等),发生错误( ...

  7. 中了J.Fla的毒!

    中了J.Fla的毒!中了J.Fla的毒!中了J.Fla的毒!中了J.Fla的毒!中了J.Fla的毒!中了J.Fla的毒!中了J.Fla的毒!中了J.Fla的毒!中了J.Fla的毒!中了J.Fla的毒! ...

  8. TC358775XBG:MIPI DSI转双路LVDS芯片简介

    TC358775XBG是一颗MIPI DSI转双路LVDS芯片,通信方式:IIC/MIPI command mode,分辨率1920*1200,封装形式:BGA64.

  9. Windows下配置Nginx

    一.今天是2017年1月18日.揣着一种也许叫做冲动的心情,决定以后每天都记录和回顾新涉及的技术,巩固已学到的知识,坚持. 二.回归到今天的技术主题,因为之前对于[反向代理]这种技术充满了好奇,借此机 ...

  10. 如何编写更好的SQL查询:终极指南-第三部分

    本次我们学习<如何编写更好的SQL查询>系列的最后一篇文章. 时间复杂度和大O符号 通过前两篇文章,我们已经对查询计划有了一定了解.接下来,我们还可以借助计算复杂度理论,来进一步深入地挖掘 ...