proc 储过程

proc 储过程

SET QUOTED_IDENTIFIER ON 

GO

SET ANSI_NULLS ON 

GO

 

–**分类报表存储过程

ALTER  proc gnfl_proc 

as 

 

declare

 

@p_phone varchar(30), @p_sex int, @p_age int, @p_city varchar(50), @p_r_type int, @p_r_time datetime,

 

   @v_ping     int, –PING码上行总计  

 

   @v_ping_ejj int, –PING码上行其中EJJ用户数

 

   @v_ping_bjj int, –PING码上行其中BJJ用户数

 

   @v_ping_con int, –PING码上行中注册和未注册的用户(consumer)不含发送EJJ/BJJ用户

 

 

 

   @v_ping_reg     int, –发送PING码并注册的用户(含不在同一天注册的用户)

 

   @v_ping_reg_ejj int, –发送PING码并注册且发送过EJJ的用户

 

   @v_ping_reg_bjj int, –发送PING码并注册且发关过BJJ的用户

 

   @v_ping_reg_con int, –发送PING码注册的用户(consumer)不含发送过EJJ/BJJ的用户

 

 

 

   @v_ping_noreg     int, –发送PING码未注册的用户

 

   @v_ping_noreg_ejj int, –发送PING码未注册而且发送了EJJ的用户

 

   @v_ping_noreg_bjj int, –发送PING码未注册而且发送了BJJ的用户

 

   @v_ping_noreg_con int, –发送PING码未注册也示发送EJJ/BJJ的用户(consumer)]

 

 

 

   @v_man    int, –男性

 

   @v_women  int, –女性

 

   @v_age20  int, –年龄在20岁以下

 

   @v_age29  int, –年龄在20~29岁

 

   @v_age39  int, –年龄在29~39岁

 

   @v_age49  int, –年龄在39~49岁

 

   @v_age50  int, –年龄在49岁以上

 

   @v_citysh int, –上海

 

   @v_citybj int, –北京

 

   @v_cityhz int, –杭州

 

   @v_citygz int, –广州

 

   @v_citysz int, –深圳

 

   @v_cityqt int, –其他城市

 

 

 

   @v_ejj_user int, –EJJ用户      1

 

   @v_bjj_user int, –BJJ用户      2

 

 

 

   @v_coun int –写入临时表的判断条件

 

 

select 

–统计男

@v_man=count(

case 

when usersex=’1′ then 1 else null

end

),

–统计女

@v_women=count(

case 

when usersex=’2′ then 1 else null

end

), 

–统计20岁

@v_age20=count(case  

    when userAge< 20  then 1

    else null

    end

    ) ,

–统计29岁

@v_age29=count(case 

    when userAge< 30 and userAge>19 then 1

    else null

    end

    ),

–统计39岁

@v_age39=count(case 

    when userAge < 40 and userAge>29 then 1

    else null

    end),

–统计49岁

@v_age49=count(case 

    when userAge < 50 and userAge>39 then 1

    else null

    end),

–统计50岁

@v_age50=count(case 

    when userAge >49 then 1

    else null

    end),

–统计上海用户

@v_citysh=count(case  

    when city=’上海’  then 1

    else null

    end

    ) ,

–统计广州用户

@v_citygz=count(case  

    when city=’广州’  then 1

    else null

    end

    ),

–统计北京用户

@v_citybj=count(case  

    when city=’北京’  then 1

    else null

    end

    ),

–统计杭州用户

@v_cityhz=count(case  

    when city=’杭州’  then 1

    else null

    end

    ),

–统计深圳用户

@v_citysz=count(case  

    when city=’深圳’  then 1

    else null

    end

    ) ,

 

—-统计除已上之外的其他用户

@v_cityqt=count(case  

    when city not in (‘北京’,’广州’,’上海’,’杭州’,’深圳’)  then 1

    else null

    end

    ) 

from (select *

 

              from tb_gl_userInf

 

             where registertype = 4 

 

               and usertype&4=4

 

               and CONVERT(char(10), registertime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20)

 

            union all

 

            select *

 

              from tb_gl_userInf

 

             where registertype !=4 

 

               and usertype&4 = 4

 

               and CONVERT(char(10), mulregtime,20)  = CONVERT(char(10), dateadd(dd,-1,getdate()),20)) a

     

 

  –统计ping码上行数据tb_gl_userreplycommand

 

  –ping码上行总计  

 

  select @v_ping=count(*)

 

    from (select *

 

           from tb_gl_userreplycommand

     

           where motype = 3

 

           and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20))  a

 

  –发送ping码且发送EJJ用户数

 

  select @v_ping_ejj=count(*)

 

  from (select *

 

        from tb_gl_userreplycommand

 

        where motype = 3

 

        and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20))  a 

 

    where telephone in

 

        (select telephone from tb_gl_userreplycommand where motype = ‘2’)

 

 

 

  –发送ping码且发送BJJ用户数

 

  select @v_ping_bjj=count(*)

 

    from (select *

 

            from tb_gl_userreplycommand

 

           where motype = 3

 

             and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20))  a 

 

   where telephone in

 

         (select telephone from tb_gl_userreplycommand where motype = ‘1’);

 

 

 

  –发送ping码且非EJJ/BJJ(consumer)用户

 

   set @v_ping_con=  @v_ping –  @v_ping_ejj –  @v_ping_bjj;

 

 

 

  –发送ping码并注册的用户

 

  select @v_ping_reg=count(distinct telephone)

 

    from (select *

 

            from tb_gl_userreplycommand

 

           where motype = 3

 

             and CONVERT(char(10), sendtime,20) <=CONVERT(char(10), dateadd(dd,-1,getdate()),20)) a 

 

   where telephone in

 

         (select telephone

 

            from tb_gl_userreplycommand

 

           where motype = 4

 

             and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20))

 

 

 

  –发送ping码并注册且发送过EJJ的用户

 

  select @v_ping_ejj=count(distinct telephone)

 

    from (select *

 

            from tb_gl_userreplycommand

 

           where motype = 3

 

             and CONVERT(char(10), sendtime,20) <=CONVERT(char(10), dateadd(dd,-1,getdate()),20)) a

 

   where telephone in

 

         (select telephone

 

            from tb_gl_userreplycommand

 

           where motype = 4

 

             and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20)

 

     and telephone in

 

         (select telephone from tb_gl_userreplycommand where motype = ‘2’))

 

 

 

  –发送ping码并注册且发送过BJJ的用户

 

  select @v_ping_reg_bjj=count(distinct telephone)

 

   from (select *

 

            from tb_gl_userreplycommand

 

           where motype = 3

 

             and CONVERT(char(10), sendtime,20) <=CONVERT(char(10), dateadd(dd,-1,getdate()),20)) a

 

   where telephone in

 

         (select telephone

 

            from tb_gl_userreplycommand

 

           where motype = 4

 

             and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20)

 

     and telephone in

 

         (select telephone from tb_gl_userreplycommand where motype = ‘1’))

 

 

 

  –发送ping码并注册但不含EJJ/BJJ用户(consumer)

   set @v_ping_reg_ejj=0

   set @v_ping_reg_con=  @v_ping_reg –  @v_ping_reg_ejj –  @v_ping_reg_bjj;

 

 

 

  –发送ping码未注册的用户

 

  select @v_ping_noreg=count(distinct telephone)

 

    from (select *

 

            from tb_gl_userreplycommand

 

           where motype = 3

 

             and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20)) a

 

   where telephone not in

 

         (select telephone

 

            from tb_gl_userreplycommand

 

           where motype = 4

 

             and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20))

 

 

 

  –发送ping码未注册且发送过EJJ的用户

 

  select @v_ping_noreg_ejj=count(distinct telephone) 

 

    from (select *

 

            from tb_gl_userreplycommand

 

            where motype = 3

 

            and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20)) a

 

   where telephone in

 

         (select telephone

 

            from tb_gl_userreplycommand

 

           where motype = 4

 

             and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20)

 

     and telephone in

 

         (select telephone from tb_gl_userreplycommand where motype = ‘2’))

 

 

 

  –发送ping码未注册且发送过BJJ的用户

 

  select @v_ping_noreg_bjj=count(distinct telephone)

 

    from (select *

 

            from tb_gl_userreplycommand

 

           where motype = 3

 

             and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20)) a

 

   where telephone in

 

         (select telephone

 

            from tb_gl_userreplycommand

 

           where motype = 4

 

             and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20)

 

     and telephone in

 

         (select telephone from tb_gl_userreplycommand where motype = ‘1’))

 

 

 

  –发送ping码未注册未发送过ejj/bjj的用户

 

  set @v_ping_noreg_con=  @v_ping_noreg –  @v_ping_noreg_ejj –  @v_ping_noreg_bjj;

 

 

 

  –统计EJJ用户      

 

  select @v_ejj_user=count(*)

 

    from tb_gl_userreplycommand

 

   where moType = ‘2’

 

     and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20)

 

 

–统计BJJ用户

 

  select @v_bjj_user=count(*)

 

    from tb_gl_userreplycommand

 

   where moType = ‘1’

 

     and CONVERT(char(10), sendtime,20) =CONVERT(char(10), dateadd(dd,-1,getdate()),20)

 

 

 

—  select @v_coun =count(*)  from t_gnhd_temp where datetime = CONVERT (char(10), getdate() ,20)

 

—  if  @v_coun = 0 

    –begin 

    insert into tb_report_gnfl

 

      (ping,

 

       ping_ejj,

 

       ping_bjj,

 

       ping_con,

 

       ping_reg,

 

       ping_reg_ejj,

 

       ping_reg_bjj,

 

       ping_reg_con,

 

       man,

 

       women,

 

       age20,

 

       age29,

 

       age39,

 

       age49,

 

       age50,

 

       citysh,

 

       citybj,

 

       cityhz,

 

       citygz,

 

       citysz,

 

       cityqt,

 

       ping_noreg,

 

       ping_noreg_ejj,

 

       ping_noreg_bjj,

 

       ping_noreg_con,

 

       ejj_user,

 

       bjj_user,

 

       datetime)

 

    values(

    @v_ping,

 

        @v_ping_ejj,

 

        @v_ping_bjj,

 

        @v_ping_con,

 

        @v_ping_reg,

 

        @v_ping_reg_ejj,

 

        @v_ping_reg_bjj,

 

        @v_ping_reg_con,

 

        @v_man,

 

        @v_women,

 

        @v_age20,

 

        @v_age29,

 

        @v_age39,

 

        @v_age49,

 

        @v_age50,

 

        @v_citysh,

 

        @v_citybj,

 

        @v_cityhz,

 

        @v_citygz,

 

        @v_citysz,

 

        @v_cityqt,

 

        @v_ping_noreg,

 

        @v_ping_noreg_ejj,

 

        @v_ping_noreg_bjj,

 

        @v_ping_noreg_con,

 

        @v_ejj_user,

 

        @v_bjj_user,

     

    CONVERT(char(10), dateadd(dd,-1,getdate()),20))

 

 

GO

SET QUOTED_IDENTIFIER OFF 

GO

SET ANSI_NULLS ON 

GO

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100571.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C++ 引用的本质_c++中引用的作用是什么

    C++ 引用的本质_c++中引用的作用是什么引用是C++引入的重要机制,它使原来在C中必须用指针实现的功能有了另一种实现的选择,在书写形式上更为简洁。那么引用的本质是什么,它与指针又有什么关系呢?

    2022年10月30日
    0
  • Apache POI使用详解[通俗易懂]

    Apache POI使用详解[通俗易懂]一:简介开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一个是apache的poi,另一个是JavaExcelApachePOI简介是用Java编写的免费开源的跨平台的JavaAPI,ApachePOI提供API给Java程式对MicrosoftOffice(Excel、WORD、PowerPoint、Visio等

    2022年6月28日
    34
  • hexo史上最全搭建教程[通俗易懂]

    花了几天搭建了个网站,先上链接,欢迎来访:fangzh的个人博客现在市面上的博客很多,如CSDN,博客园,简书等平台,可以直接在上面发表,用户交互做的好,写的文章百度也能搜索的到。缺点是比较不自由,会受到平台的各种限制和恶心的广告。而自己购买域名和服务器,搭建博客的成本实在是太高了,不光是说这些购买成本,单单是花力气去自己搭这么一个网站,还要定期的维护它,对于我们大多数人来说,实在是没…

    2022年4月8日
    219
  • 大学课程 | 《微机原理与接口技术》知识点总结[通俗易懂]

    大学课程 | 《微机原理与接口技术》知识点总结[通俗易懂]文章目录第一章微型计算机基础概论第一讲关于第二讲微型计算机系统组成第三讲微机工作过程第四讲常用数制第五讲编码第六讲数及其运算第七讲基本逻辑运算和逻辑门第八讲基本逻辑运算及其门电路第二章微处理器与总线第九讲8088/8086微处理器第十讲8088的主要引线及其内部结构第十一讲8088CPU内部寄存器第十二讲实模式下的存储器寻址第十三讲8088系统总线第三章指令系统概述第十四讲8088/8086指令系统第十五讲指令的寻址方式第十六讲数据传送指令第四章算术运算,逻辑运算与

    2022年10月3日
    0
  • 详尽介绍的意思_aboutconfig怎么进去

    详尽介绍的意思_aboutconfig怎么进去一、什么是about:configabout:config:是Firefox的设置页面,Firefox提供了不少高级设置选项在这里以便让你可以更加详细地控制Firefox的运行方式。官方不推荐

    2022年8月1日
    4
  • 网上主要的搜索工具_互联网主要是做什么的

    网上主要的搜索工具_互联网主要是做什么的我的一位朋友,用了10年的电脑。作为一名老网民,他的信息检索能力让我诧异。每次需要找点图片、网站、研究报告甚至小电影,他都需要花费很多时间,在各个论坛、网站里疲于奔波。因为他只会用百度!然而,世界上不仅仅只有一类搜索引擎。百度或者google虽然可以提供海量的信息,但是信息的甄选是一件非常麻烦的事情。所以,在这些通用引擎之外,我们

    2022年9月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号