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

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Discuz 精心整理的搬家教程

    Discuz 精心整理的搬家教程由于种种原因,很多时候站长都需要对网站进行搬家,搬家会经常出现这样或那样的问题,现在对以往的经验做一个总结,希望对各位站长有所帮助。  网站的空间有独立与虚拟之分,下面分别介绍两种空间的搬家方法。  一、独立主机  网站搬家即数据的迁移,搬家前不论独立还是虚拟主机,网站都需关闭。数据的迁移分为数据库数据及程序和附件文件两部分的的迁移。  数据库的迁移:首先停止老服务器上的MySQL。复制MySQL数据存放目录下的数据文件,至于MySQL的数据存放目录,可以查看MySQL配…

  • es6数组 newSet 数组去重 并集 交集 差集

    es6数组 newSet 数组去重 并集 交集 差集数组去重vararr=[1,2,3,3,1,4];[…newSet(arr)];//[1,2,3,4]Array.from(newSet(arr));//[1,2,3,4][…newSet(‘ababbc’)].join(’’);//“abc”字符串去重newSet(‘icedoughnut’);//Set(11){“i”,“c”,“e”,””,“d”,…}并集vara=newSet([1,2,3]);varb=ne

    2022年10月25日
  • windows下安装docker_bindService

    windows下安装docker_bindService1、下载BINDhttp://ftp.isc.org/isc/bind9/9.4.3/BIND9.4.3.zip2、安装下载回来是zip的压缩包,解压以后直接双击BINDInstall.exe安装,默认安装路径是C:\WINDOWS\system32\dns。bind在win32下将自己注册成服务,服务名叫ISCBIND,程序名为named.exe,启动服务需要用一专有帐户,默认名称为named,密码由安装者自定义。点击install以后,程序便安装在C:\WINDOWS\system32\dns

    2022年10月30日
  • laravel的ORM模型的find(),findOrFail(),first(),firstOrFail(),get(),list(),toArray()之间的区别…

    laravel的ORM模型的find(),findOrFail(),first(),firstOrFail(),get(),list(),toArray()之间的区别…

  • Java文件上传实例并解决跨域问题

    Java文件上传实例并解决跨域问题本文内容为Java文件上传实例并解决跨域问题,其中重点讲解了文件上传,MultipartFile接口的使用,配置nginx,以及解决文件上传跨域的问题

  • Linux运维常见面试题汇总

    Linux运维常见面试题汇总Linux面试题一、填空题1. 在Linux 系统中,以文件方式访问设备。2.Linux 内核引导时,从文件/etc/fstab中读取要加载的文件系统。3.Linux 文件系统中每个文件用indoe节点来标识。4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i 节点表块 和 数据存储块 。5. 链接分为:硬链接 和 符号链接 。

发表回复

您的电子邮箱地址不会被公开。

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