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账号...