create proc p_qry
@编号 varchar(8000),
@开始日期 datetime,
@结束日期 datetime
as
set nocount on ---*********************** 加上这句
declare @s varchar(8000),@tj varchar(100)
select @s=''
,@tj=' where 销售日期 between '''
+convert(char(10),@开始日期,120)
+''' and '''
+convert(char(10),@结束日期,120)
+''''
select @s=@s+',['+名称+']=sum(case 柜台号 when '''+编号+''' then 金额 else 0 end)'
from 柜台表 where charindex(','+编号+',',','+@编号+',')>0
exec('
select 销售日期=convert(char(10),销售日期,120)'+@s+'
from 销售表 '+@tj+'
group by convert(char(10),销售日期,120)')
go--调用
exec p_qry 'aaa,bbb,ccc','2004-10-10','2004-10-11'
go
@编号 varchar(8000),
@开始日期 datetime,
@结束日期 datetime
as
set nocount on ---*********************** 加上这句
declare @s varchar(8000),@tj varchar(100)
select @s=''
,@tj=' where 销售日期 between '''
+convert(char(10),@开始日期,120)
+''' and '''
+convert(char(10),@结束日期,120)
+''''
select @s=@s+',['+名称+']=sum(case 柜台号 when '''+编号+''' then 金额 else 0 end)'
from 柜台表 where charindex(','+编号+',',','+@编号+',')>0
exec('
select 销售日期=convert(char(10),销售日期,120)'+@s+'
from 销售表 '+@tj+'
group by convert(char(10),销售日期,120)')
go--调用
exec p_qry 'aaa,bbb,ccc','2004-10-10','2004-10-11'
go
也就是将你的存储过程的结果集放到表temp1中,有办法实现吗?
用下面的会出错!create proc p_p1
as
insert into temp1
exec p_qry 'aaa,bbb,ccc','2004-10-10','2004-10-11'
select * from temp1服务器: 消息 208,级别 16,状态 1,过程 p_p1,行 3
对象名 'temp1' 无效。
exec p_qry 'aaa,bbb,ccc','2004-10-10','2004-10-11'这个语法是没有错的,但你得先建好表.
exec p_qry 'aaa,bbb,ccc','2004-10-10','2004-10-11'这个语法是没有错的,但你得先建好表.《----- 可能问题在这里,因为无法提前建好表的temp1的表结构,因为返回的字段不固定!