有两个存储过程 两个分别返回一个值,一个求了删除版号次数,一个求了下活次数,最后想求每个业务员的删除比例即删除版号次数/下活次数,如何使两个存储过程结合起来。
我用这个可以求得某个时间段某个业务员删除的版号:
CREATE PROCEDURE dbo.网上登记业务版号删除统计
(
@开始时间 datetime,
@终止时间 datetime,
@业务员 nvarchar(50),
@总计 int out
)
ASif( @业务员='' or @业务员 is null)
begin
select @总计=count(*) from del_b2h2 where 来稿日期 BETWEEN @开始时间 AND @终止时间 and (审稿生产备注 like '%网登%')
end
else
begin
Select @总计=count(*) from del2_bh2 where 来稿日期 BETWEEN @开始时间 AND @终止时间 and(审稿生产备注 like '%网登%')
AND
(业务员 = @业务员)
end
GO用这个存储过程写的某个业务员总共下活的数量。
CREATE PROCEDURE dbo.网上登记业务版号统计
(@开始时间 datetime,
@终止时间 datetime,
@业务员 nvarchar(50),
@总计 int out
)
ASif( @业务员='' or @业务员 is null)
begin
select @总计=count(*) from 订单 where 来稿日期 BETWEEN @开始时间 AND @终止时间
end
else
begin
Select @总计=count(*) from 订单 where 来稿日期 BETWEEN @开始时间 AND @终止时间
AND
(业务员 = @业务员)
end
GO
我想把这两个存储过程结合起来,如何写一个存储过程结果为每个业务员的删除比例,即一次求得个个业务员的删除次数/下活数是多少.
我用这个可以求得某个时间段某个业务员删除的版号:
CREATE PROCEDURE dbo.网上登记业务版号删除统计
(
@开始时间 datetime,
@终止时间 datetime,
@业务员 nvarchar(50),
@总计 int out
)
ASif( @业务员='' or @业务员 is null)
begin
select @总计=count(*) from del_b2h2 where 来稿日期 BETWEEN @开始时间 AND @终止时间 and (审稿生产备注 like '%网登%')
end
else
begin
Select @总计=count(*) from del2_bh2 where 来稿日期 BETWEEN @开始时间 AND @终止时间 and(审稿生产备注 like '%网登%')
AND
(业务员 = @业务员)
end
GO用这个存储过程写的某个业务员总共下活的数量。
CREATE PROCEDURE dbo.网上登记业务版号统计
(@开始时间 datetime,
@终止时间 datetime,
@业务员 nvarchar(50),
@总计 int out
)
ASif( @业务员='' or @业务员 is null)
begin
select @总计=count(*) from 订单 where 来稿日期 BETWEEN @开始时间 AND @终止时间
end
else
begin
Select @总计=count(*) from 订单 where 来稿日期 BETWEEN @开始时间 AND @终止时间
AND
(业务员 = @业务员)
end
GO
我想把这两个存储过程结合起来,如何写一个存储过程结果为每个业务员的删除比例,即一次求得个个业务员的删除次数/下活数是多少.
CREATE PROCEDURE dbo.网上登记业务版号统计
(
@开始时间 datetime,
@终止时间 DATETIME,
@业务员 nvarchar(50),
@总计 int out
)
ASif( @业务员='' or @业务员 is null)
begin
select @总计=count(*) from 订单 where 来稿日期 BETWEEN @开始时间 AND @终止时间
UNION ALL
select @总计=count(*) from del_b2h2 where 来稿日期 BETWEEN @开始时间 AND @终止时间 and (审稿生产备注 like '%网登%')
end
else
begin
Select @总计=count(*) from 订单 where 来稿日期 BETWEEN @开始时间 AND @终止时间
UNION ALL
Select @总计=count(*) from del2_bh2 where 来稿日期 BETWEEN @开始时间 AND @终止时间 and(审稿生产备注 like '%网登%')
AND
(业务员 = @业务员)
end
GO
(
@开始时间 datetime,
@终止时间 datetime,
@业务员 nvarchar(50),
--@总计 int out
)
AS
set nocount on
declare @总计1 int,@总计2 int
if( @业务员='' or @业务员 is null)
begin
select @总计1=count(*) from del_b2h2 where 来稿日期 BETWEEN @开始时间 AND @终止时间 and (审稿生产备注 like '%网登%')
select @总计2=count(*) from 订单 where 来稿日期 BETWEEN @开始时间 AND @终止时间
print '条件1:'+ @总计1
print '条件1:' + @总计2
end
else
begin
Select @总计1=count(*) from del2_bh2 where 来稿日期 BETWEEN @开始时间 AND @终止时间 and(审稿生产备注 like '%网登%')
AND
(业务员 = @业务员)
Select @总计2=count(*) from 订单 where 来稿日期 BETWEEN @开始时间 AND @终止时间
AND
(业务员 = @业务员)
print '条件2:' + @总计1
print '条件2:' + @总计2
end
set nocount off
(
@开始时间 datetime,
@终止时间 datetime,
@业务员 nvarchar(50),
--@总计 int out
)
AS
set nocount on
declare @总计1 int,@总计2 int
if( @业务员='' or @业务员 is null)
begin
select @总计1=count(*) from del_b2h2 where 来稿日期 BETWEEN @开始时间 AND @终止时间 and (审稿生产备注 like '%网登%')
select @总计2=count(*) from 订单 where 来稿日期 BETWEEN @开始时间 AND @终止时间
print '条件1:'+ @总计1
print '条件1:' + @总计2
print '结果:' + ltrim(@总计1/@总计2)
end
else
begin
Select @总计1=count(*) from del2_bh2 where 来稿日期 BETWEEN @开始时间 AND @终止时间 and(审稿生产备注 like '%网登%')
AND
(业务员 = @业务员)
Select @总计2=count(*) from 订单 where 来稿日期 BETWEEN @开始时间 AND @终止时间
AND
(业务员 = @业务员)
print '条件2:' + @总计1
print '条件2:' + @总计2
print '结果:' + ltrim(@总计1/@总计2)
end
set nocount off
不过你这个可以写到一个存储过程里,写到一个里面好些 declare @ret_sum1 int
EXECUTE @ret_sum1 = 网上登记业务版号删除统计 参数 declare @ret_sum2 int
EXECUTE @ret_sum2 = 网上登记业务版号统计 参数 declare @lastvalue
set @lastvalue=@ret_sum1/(@ret_sum2*1.0)
EXECUTE 网上登记业务版号删除统计 @开始时间,@终止时间,@业务员,@ret_sum1 output declare @ret_sum2 int
EXECUTE 网上登记业务版号统计 @开始时间,@终止时间,@业务员,@ret_sum2 output declare @lastvalue
set @lastvalue=@ret_sum1/(@ret_sum2*1.0)