CREATE PROCEDURE up_dtc_onway_kcyue_zh @yue char(7),@gs_userid varchar(10),@p_id varchar(20),@as_error varchar(255) output AS ---->取得收数据 declare @ls_p_id varchar(20),@ppm char(2), @dlm1 char(2),@dlm3 char(2),@cpm varchar(20),@ggm char(5),@tjm char(2),@ddh char(12) declare @dj1 decimal(8,2),@dj2 decimal(8,2),@dj3 decimal(8,2),@dwsl decimal(16,0),@f_zhengfu int,@je1 decimal(16,2),@je2 decimal(16,2) declare @ls_v_id varchar(20),@v_name varchar(60),@dlmc1 varchar(20),@dlmc3 varchar(20),@cpmc varchar(60),@ggmc varchar(20),@tjmc varchar(20),@zlmc varchar(20) declare @f_level char(1),@li_count int declare @v_id1 varchar(20),@v_id2 varchar(20),@dw char(4),@p_id1 varchar(20),@p_id2 varchar(20),@p_name varchar(60) ---->清除汇总表 delete from dtc_onway_kcyue_zh where p_id=@p_id if @@error <> 0 begin select @as_error = description from master.dbo.sysmessages where error = @@ERROR select @as_error = '清除汇总表内容出错,错误信息:' + @as_error return end ----> declare cur_yue_zh_r cursor for SELECT DISTINCT p_id,ppm, dlm1,dlm3,cpm,ggm,tjm,ddh,dj1 ,dj2,dj3,dwsl,dwdw,f_zhengfu, v_id1,v_id2,v_name,dlmc3,cpmc,ggmc,tjmc,zlmc FROM DTC_onway_kcyue WHERE ( v_id = @p_id ) AND ( yue =@yue )
open cur_yue_zh_r fetch next from cur_yue_zh_r into @ls_p_id,@ppm,@dlm1,@dlm3,@cpm,@ggm,@tjm,@ddh,@dj1,@dj2,@dj3,@dwsl,@dw,@f_zhengfu,@v_id1,@v_id2,@v_name,@dlmc3,@cpmc,@ggmc,@tjmc,@zlmc
WHILE @@FETCH_STATUS = 0 begin ----->查余额汇总表里是否有 select @li_count= count(1) from dtc_onway_kcyue_zh where(p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm) ---->判断p_id是否是v_id的上级 select f_level = @f_level from DTC_onway_user_v_id where ( userid =@gs_userid ) AND ( v_id = @ls_p_id )
if @f_level = '0' and @li_count = 0 ---//是我的上级 begin INSERT INTO DTC_onway_kcyue_zh ( p_id,p_id1,p_id2,ppm,dlm1,dlm3,cpm,ggm,ddh,tjm,dw,s_r_sl,s_r_dj1,s_r_dj2,s_r_dj3, s_s_sl,s_s_dj1,s_s_dj2,s_s_dj3,x_r_sl,x_r_dj1,x_r_dj2,x_r_dj3,x_s_sl,x_s_dj1,x_s_dj2, x_s_dj3,p_name,ppmc,dlmc1,dlmc3,cpmc,ggmc ) values(@p_id,@v_id1,@v_id2,@ppm,@dlm1,@dlm3,@cpm,@ggm,@ddh,@tjm,@dw, @dwsl,@dj1,@dj2,@dj3,0,0,0,0,0,0,0,0,0,0,0,0,@v_name,@ppm, @dlmc1,@dlmc3,@cpmc,@ggmc ) end if @f_level = '1' and @li_count = 0 ---//是我的下级 begin INSERT INTO DTC_onway_kcyue_zh ( p_id,p_id1,p_id2,ppm,dlm1,dlm3,cpm,ggm,ddh,tjm,dw,s_r_sl,s_r_dj1,s_r_dj2,s_r_dj3, s_s_sl,s_s_dj1,s_s_dj2,s_s_dj3,x_r_sl,x_r_dj1,x_r_dj2,x_r_dj3,x_s_sl,x_s_dj1,x_s_dj2, x_s_dj3,p_name,ppmc,dlmc1,dlmc3,cpmc,ggmc ) values(@p_id,@v_id1,@v_id2,@ppm,@dlm1,@dlm3,@cpm,@ggm,@ddh,@tjm,@dw,0,0,0,0,0,0,0,0, @dwsl,@dj1,@dj2,@dj3,0,0,0,0,@v_name,@ppm, @dlmc1,@dlmc3,@cpmc,@ggmc ) end if @f_level = '0' and @li_count = 1 ---//是我的上级 begin update DTC_onway_kcyue_zh set s_r_sl= s_r_sl+@dwsl----,s_r_dj1=@dj1,s_r_dj2=@dj2,s_r_dj3=@dj3 where (p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm) end if @f_level = '1' and @li_count = 1 ---//是我的下级 begin update DTC_onway_kcyue_zh set x_r_sl= x_r_sl+@dwsl----,x_r_dj1=@dj1,x_r_dj2=@dj2,x_r_dj3=@dj3 where (p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm) end fetch next from cur_yue_zh_r into @ls_p_id,@ppm,@dlm1,@dlm3,@cpm,@ggm,@tjm,@ddh,@dj1,@dj2,@dj3,@dwsl,@dw,@f_zhengfu,@v_id1,@v_id2,@v_name,@dlmc3,@cpmc,@ggmc,@tjmc,@zlmc END close cur_yue_zh_r DEALLOCATE cur_yue_zh_r
---->取得发数据 declare cur_yue_zh_s cursor for SELECT DISTINCT v_id,ppm, dlm1,dlm3,cpm,ggm,tjm,ddh,dj1 ,dj2,dj3,dwsl,dwdw,f_zhengfu,p_id1,p_id2, p_name,dlmc3,cpmc,ggmc,tjmc,zlmc FROM DTC_onway_kcyue WHERE ( p_id = @p_id ) AND ( yue =@yue )
open cur_yue_zh_s fetch next from cur_yue_zh_s into @ls_v_id,@ppm,@dlm1,@dlm3,@cpm,@ggm,@tjm,@ddh,@dj1,@dj2,@dj3,@dwsl,@dw,@f_zhengfu,@p_id1,@p_id2,@p_name,@dlmc3,@cpmc,@ggmc,@tjmc,@zlmc
WHILE @@FETCH_STATUS = 0 begin ----->查余额汇总表里是否有 select @li_count =count(*) from DTC_onway_kcyue_zh where (p_id =@p_id)and (ppm=@ppm) and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm)
---->判断v_id是否是v_id的上级 select f_level = @f_level from DTC_onway_user_v_id where ( userid =@gs_userid) and ( v_id = @ls_v_id)
if @f_level = '0' and @li_count = 0 ---//是我的上级 begin INSERT INTO DTC_onway_kcyue_zh ( p_id,p_id1,p_id2,ppm,dlm1,dlm3,cpm,ggm,ddh,tjm,dw,s_r_sl,s_r_dj1,s_r_dj2,s_r_dj3, s_s_sl,s_s_dj1,s_s_dj2,s_s_dj3,x_r_sl,x_r_dj1,x_r_dj2,x_r_dj3,x_s_sl,x_s_dj1,x_s_dj2, x_s_dj3,p_name,ppmc,dlmc1,dlmc3,cpmc,ggmc ) values(@p_id,@p_id1,@p_id2,@ppm,@dlm1,@dlm3,@cpm,@ggm,@ddh,@tjm,@dw,0,0,0,0, @dwsl,@dj1,@dj2,@dj3,0,0,0,0,0,0,0,0,@p_name,@ppm,@dlmc1,@dlmc3,@cpmc,@ggmc ) end if @f_level = '1' and @li_count = 0 begin INSERT INTO DTC_onway_kcyue_zh ( p_id,p_id1,p_id2,ppm,dlm1,dlm3,cpm,ggm,ddh,tjm,dw,s_r_sl,s_r_dj1,s_r_dj2,s_r_dj3, s_s_sl,s_s_dj1,s_s_dj2,s_s_dj3,x_r_sl,x_r_dj1,x_r_dj2,x_r_dj3,x_s_sl,x_s_dj1,x_s_dj2, x_s_dj3,p_name,ppmc,dlmc1,dlmc3,cpmc,ggmc ) values(@p_id,@p_id1,@p_id2,@ppm,@dlm1,@dlm3,@cpm,@ggm,@ddh,@tjm,@dw,0,0,0,0, 0,0,0,0,0,0,0,0,@dwsl,@dj1,@dj2,@dj3,@p_name,@ppm, @dlmc1,@dlmc3,@cpmc,@ggmc ) end if @f_level = '0' and @li_count = 1 begin update DTC_onway_kcyue_zh set s_s_sl= s_s_sl+@dwsl--------,s_s_dj1=@dj1,s_s_dj2=@dj2,s_s_dj3=@dj3 where (p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm) end if @f_level = '1' and @li_count = 1 begin update DTC_onway_kcyue_zh set x_s_sl= x_s_sl+@dwsl--------,x_s_dj1=@dj1,x_s_dj2=@dj2,x_s_dj3=@dj3 where (p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm) end fetch next from cur_yue_zh_s into @ls_v_id,@ppm,@dlm1,@dlm3,@cpm,@ggm,@tjm,@ddh,@dj1,@dj2,@dj3,@dwsl,@dw,@f_zhengfu,@p_id1,@p_id2,@p_name,@dlmc3,@cpmc,@ggmc,@tjmc,@zlmc end --->生成数据报错 if @@error>0 begin select @as_error = description from master.dbo.sysmessages where error = @@ERROR select @as_error = '生成汇总表内容出错,错误信息:' + @as_error rollback tran return end else begin commit tran end close cur_yue_zh_s DEALLOCATE cur_yue_zh_s GO
但不能用print
@yue char(7),@gs_userid varchar(10),@p_id varchar(20),@as_error varchar(255) output
AS
---->取得收数据
declare @ls_p_id varchar(20),@ppm char(2), @dlm1 char(2),@dlm3 char(2),@cpm varchar(20),@ggm char(5),@tjm char(2),@ddh char(12)
declare @dj1 decimal(8,2),@dj2 decimal(8,2),@dj3 decimal(8,2),@dwsl decimal(16,0),@f_zhengfu int,@je1 decimal(16,2),@je2 decimal(16,2)
declare @ls_v_id varchar(20),@v_name varchar(60),@dlmc1 varchar(20),@dlmc3 varchar(20),@cpmc varchar(60),@ggmc varchar(20),@tjmc varchar(20),@zlmc varchar(20)
declare @f_level char(1),@li_count int
declare @v_id1 varchar(20),@v_id2 varchar(20),@dw char(4),@p_id1 varchar(20),@p_id2 varchar(20),@p_name varchar(60)
---->清除汇总表
delete from dtc_onway_kcyue_zh where p_id=@p_id
if @@error <> 0
begin
select @as_error = description from master.dbo.sysmessages where error = @@ERROR
select @as_error = '清除汇总表内容出错,错误信息:' + @as_error
return
end
---->
declare cur_yue_zh_r cursor for
SELECT DISTINCT p_id,ppm, dlm1,dlm3,cpm,ggm,tjm,ddh,dj1 ,dj2,dj3,dwsl,dwdw,f_zhengfu, v_id1,v_id2,v_name,dlmc3,cpmc,ggmc,tjmc,zlmc
FROM DTC_onway_kcyue WHERE ( v_id = @p_id ) AND ( yue =@yue )
open cur_yue_zh_r
fetch next from cur_yue_zh_r into @ls_p_id,@ppm,@dlm1,@dlm3,@cpm,@ggm,@tjm,@ddh,@dj1,@dj2,@dj3,@dwsl,@dw,@f_zhengfu,@v_id1,@v_id2,@v_name,@dlmc3,@cpmc,@ggmc,@tjmc,@zlmc
WHILE @@FETCH_STATUS = 0
begin
----->查余额汇总表里是否有
select @li_count= count(1) from dtc_onway_kcyue_zh
where(p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm)
---->判断p_id是否是v_id的上级
select f_level = @f_level from DTC_onway_user_v_id where ( userid =@gs_userid ) AND ( v_id = @ls_p_id )
if @f_level = '0' and @li_count = 0 ---//是我的上级
begin
INSERT INTO DTC_onway_kcyue_zh
( p_id,p_id1,p_id2,ppm,dlm1,dlm3,cpm,ggm,ddh,tjm,dw,s_r_sl,s_r_dj1,s_r_dj2,s_r_dj3,
s_s_sl,s_s_dj1,s_s_dj2,s_s_dj3,x_r_sl,x_r_dj1,x_r_dj2,x_r_dj3,x_s_sl,x_s_dj1,x_s_dj2,
x_s_dj3,p_name,ppmc,dlmc1,dlmc3,cpmc,ggmc )
values(@p_id,@v_id1,@v_id2,@ppm,@dlm1,@dlm3,@cpm,@ggm,@ddh,@tjm,@dw,
@dwsl,@dj1,@dj2,@dj3,0,0,0,0,0,0,0,0,0,0,0,0,@v_name,@ppm, @dlmc1,@dlmc3,@cpmc,@ggmc )
end
if @f_level = '1' and @li_count = 0 ---//是我的下级
begin
INSERT INTO DTC_onway_kcyue_zh
( p_id,p_id1,p_id2,ppm,dlm1,dlm3,cpm,ggm,ddh,tjm,dw,s_r_sl,s_r_dj1,s_r_dj2,s_r_dj3,
s_s_sl,s_s_dj1,s_s_dj2,s_s_dj3,x_r_sl,x_r_dj1,x_r_dj2,x_r_dj3,x_s_sl,x_s_dj1,x_s_dj2,
x_s_dj3,p_name,ppmc,dlmc1,dlmc3,cpmc,ggmc )
values(@p_id,@v_id1,@v_id2,@ppm,@dlm1,@dlm3,@cpm,@ggm,@ddh,@tjm,@dw,0,0,0,0,0,0,0,0,
@dwsl,@dj1,@dj2,@dj3,0,0,0,0,@v_name,@ppm, @dlmc1,@dlmc3,@cpmc,@ggmc )
end
if @f_level = '0' and @li_count = 1 ---//是我的上级
begin
update DTC_onway_kcyue_zh
set s_r_sl= s_r_sl+@dwsl----,s_r_dj1=@dj1,s_r_dj2=@dj2,s_r_dj3=@dj3
where (p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm) end
if @f_level = '1' and @li_count = 1 ---//是我的下级
begin
update DTC_onway_kcyue_zh
set x_r_sl= x_r_sl+@dwsl----,x_r_dj1=@dj1,x_r_dj2=@dj2,x_r_dj3=@dj3
where (p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm)
end
fetch next from cur_yue_zh_r into @ls_p_id,@ppm,@dlm1,@dlm3,@cpm,@ggm,@tjm,@ddh,@dj1,@dj2,@dj3,@dwsl,@dw,@f_zhengfu,@v_id1,@v_id2,@v_name,@dlmc3,@cpmc,@ggmc,@tjmc,@zlmc
END close cur_yue_zh_r
DEALLOCATE cur_yue_zh_r
---->取得发数据
declare cur_yue_zh_s cursor for
SELECT DISTINCT v_id,ppm, dlm1,dlm3,cpm,ggm,tjm,ddh,dj1 ,dj2,dj3,dwsl,dwdw,f_zhengfu,p_id1,p_id2, p_name,dlmc3,cpmc,ggmc,tjmc,zlmc
FROM DTC_onway_kcyue WHERE ( p_id = @p_id ) AND ( yue =@yue )
open cur_yue_zh_s
fetch next from cur_yue_zh_s into @ls_v_id,@ppm,@dlm1,@dlm3,@cpm,@ggm,@tjm,@ddh,@dj1,@dj2,@dj3,@dwsl,@dw,@f_zhengfu,@p_id1,@p_id2,@p_name,@dlmc3,@cpmc,@ggmc,@tjmc,@zlmc
WHILE @@FETCH_STATUS = 0
begin
----->查余额汇总表里是否有
select @li_count =count(*) from DTC_onway_kcyue_zh
where (p_id =@p_id)and (ppm=@ppm) and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm)
---->判断v_id是否是v_id的上级
select f_level = @f_level from DTC_onway_user_v_id where ( userid =@gs_userid) and ( v_id = @ls_v_id)
if @f_level = '0' and @li_count = 0 ---//是我的上级
begin
INSERT INTO DTC_onway_kcyue_zh
( p_id,p_id1,p_id2,ppm,dlm1,dlm3,cpm,ggm,ddh,tjm,dw,s_r_sl,s_r_dj1,s_r_dj2,s_r_dj3,
s_s_sl,s_s_dj1,s_s_dj2,s_s_dj3,x_r_sl,x_r_dj1,x_r_dj2,x_r_dj3,x_s_sl,x_s_dj1,x_s_dj2,
x_s_dj3,p_name,ppmc,dlmc1,dlmc3,cpmc,ggmc )
values(@p_id,@p_id1,@p_id2,@ppm,@dlm1,@dlm3,@cpm,@ggm,@ddh,@tjm,@dw,0,0,0,0,
@dwsl,@dj1,@dj2,@dj3,0,0,0,0,0,0,0,0,@p_name,@ppm,@dlmc1,@dlmc3,@cpmc,@ggmc )
end
if @f_level = '1' and @li_count = 0
begin
INSERT INTO DTC_onway_kcyue_zh
( p_id,p_id1,p_id2,ppm,dlm1,dlm3,cpm,ggm,ddh,tjm,dw,s_r_sl,s_r_dj1,s_r_dj2,s_r_dj3,
s_s_sl,s_s_dj1,s_s_dj2,s_s_dj3,x_r_sl,x_r_dj1,x_r_dj2,x_r_dj3,x_s_sl,x_s_dj1,x_s_dj2,
x_s_dj3,p_name,ppmc,dlmc1,dlmc3,cpmc,ggmc )
values(@p_id,@p_id1,@p_id2,@ppm,@dlm1,@dlm3,@cpm,@ggm,@ddh,@tjm,@dw,0,0,0,0,
0,0,0,0,0,0,0,0,@dwsl,@dj1,@dj2,@dj3,@p_name,@ppm, @dlmc1,@dlmc3,@cpmc,@ggmc )
end
if @f_level = '0' and @li_count = 1
begin
update DTC_onway_kcyue_zh
set s_s_sl= s_s_sl+@dwsl--------,s_s_dj1=@dj1,s_s_dj2=@dj2,s_s_dj3=@dj3
where (p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm)
end
if @f_level = '1' and @li_count = 1
begin
update DTC_onway_kcyue_zh
set x_s_sl= x_s_sl+@dwsl--------,x_s_dj1=@dj1,x_s_dj2=@dj2,x_s_dj3=@dj3
where (p_id =@p_id)and(ppm=@ppm)and(dlm1=@dlm1)and(dlm3=@dlm3)and(cpm=@cpm)and(ggm=@ggm)and(ddh=@ddh)and(tjm=@tjm)
end
fetch next from cur_yue_zh_s into @ls_v_id,@ppm,@dlm1,@dlm3,@cpm,@ggm,@tjm,@ddh,@dj1,@dj2,@dj3,@dwsl,@dw,@f_zhengfu,@p_id1,@p_id2,@p_name,@dlmc3,@cpmc,@ggmc,@tjmc,@zlmc
end
--->生成数据报错
if @@error>0
begin
select @as_error = description from master.dbo.sysmessages where error = @@ERROR
select @as_error = '生成汇总表内容出错,错误信息:' + @as_error
rollback tran
return
end
else
begin
commit tran
end
close cur_yue_zh_s
DEALLOCATE cur_yue_zh_s
GO