create prpcedure Pa
as
select a.aa,b.bb,c.cc
from a join b on a.ID=b.ID
join c on a.ID=c.ID
现在我想再建个存储过程Pb, 在这个存储过程中要调用存储过程Pa,对它的返回集再进行汇总查询:
create prpcedure Pb
as
exec Pa
接下来该如何编写?请教各位高手,先谢谢了!
由于前面的存储过程要多次应用在不同的场合,所以不能把后面的 proc 全放在第1個proc里面.
下面是代码(表和记录只是做测试用的):
--创建表
CREATE TABLE [bxhz]
([年月] varchar(10) ,
[科目] varchar (50) ,
[明细科目] varchar (50) ,
[支出] numeric (18, 2),
[报销人] varchar (20) )
GO
--添加记录
insert into bxhz
values('2006-01','经营费用','通讯费',100,'王丽')
insert into bxhz
values('2006-01','经营费用','差旅费',1500,'张华')
insert into bxhz
values('2006-01','经营费用','通讯费',550,'何军')
insert into bxhz
values('2006-01','经营费用','差旅费',2000,'刘伟')
insert into bxhz
values('2006-01','管理费用','工资',2000,'何军')
insert into bxhz
values('2006-01','管理费用','工资',3000,'张华')
insert into bxhz
values('2006-01','管理费用','其它',1000,'刘伟')
insert into bxhz
values('2006-01','管理费用','其它',400,'王丽')
insert into bxhz
values('2006-02','经营费用','通讯费',100,'王丽')
insert into bxhz
values('2006-02','经营费用','差旅费',1500,'张华')
insert into bxhz
values('2006-02','经营费用','通讯费',550,'何军')
insert into bxhz
values('2006-02','经营费用','差旅费',2000,'刘伟')
insert into bxhz
values('2006-02','管理费用','工资',2000,'何军')
insert into bxhz
values('2006-02','管理费用','工资',3000,'张华')
insert into bxhz
values('2006-02','管理费用','其它',1000,'刘伟')
insert into bxhz
values('2006-02','管理费用','其它',400,'王丽')
--创建第一个存储过程 Pa
create procedure Pa
as
begin
select 年月,科目,明细科目,sum(支出) as 支出 from bxhz group by 年月,科目,明细科目
end
--创建第二个存储过程 Pb
create procedure Pb
as
begin
create table #Pb2
([年月] varchar(10) ,
[科目] varchar (50) ,
[明细科目] varchar (50) ,
[支出] numeric (18, 2),
)
insert into #Pb2
exec Pa
select 年月,科目,sum(支出) as 支出 from #Pb2 group by 年月,科目
end
--创建第三个存储过程 Pc
create procedure Pc
as
begin
create table #Pc3
([年月] varchar(10) ,
[科目] varchar (50) ,
[支出] numeric (18, 2),
)
insert into #Pc3
exec Pb
select 年月, sum(支出) as 支出 from #Pc3 group by 年月
end
--调用:
exec pc
报错:insert exec 语句不能嵌套
是不是我什么地方用的不对,请楼上先生指点一下.
[此贴子已经被作者于2006-9-4 16:32:46编辑过]