用select 对存储过程的返回记录集进行再次查询
create table #tmp (字段 字段类型)
insert #tmp Exec procedureName
Select * from #tmp where ...
create table #tmp (字段 字段类型)
insert #tmp Exec procedureName
Select * from #tmp where ...
直接执行就行了,没有办法保存到表中。eg
用记录集打开
rs.open " exec 存储过程 "
strTmp = rs.Source
strTmp = Left(strTmp, InStr(UCase(strTmp), " FROM ")) & " into Newtable " + Mid(strTmp, InStr(UCase(strTmp), " FROM "))
cn.execute strTmp这样就将你的纪录集导出到一个新表Newtable中
create table #tmp (字段 字段类型)
insert #tmp Exec procedureName
Select * from #tmp where ...
此时你必须知道其表结构
select @sql=@sql +',case 原因 when '''+ rtrim(t1.原因) + ''' then sum(处罚比例/100*时数) else 0 end as ['+ rtrim(t1.原因)+']'
from (select distinct 原因 from chkattend_ds ) t1
set @sql=@sql+' from chkattend_ds where datediff(m,日期,'''+@date+''')=0 group by 身份证号,原因'
exec (@sql)
select @sql=@sql +',case 原因 when '''+ rtrim(t1.原因) + ''' then sum(处罚比例/100*时数) else 0 end as ['+ rtrim(t1.原因)+']'
from (select distinct 原因 from chkattend_ds ) t1
set @sql=@sql+' into 要生成的表名 --这里加上生成表的语句就行了
from chkattend_ds where datediff(m,日期,'''+@date+''')=0 group by 身份证号,原因'
exec (@sql)
into #aa
from (select distinct 原因 from chkattend_ds) t1
from chkattend_ds where 1=2set @sql='select 身份证号'
select @sql=@sql +',case 原因 when '''+ rtrim(t1.原因) + ''' then sum(处罚比例/100*时数) else 0 end as ['+ rtrim(t1.原因)+']'
from (select distinct 原因 from chkattend_ds ) t1
set @sql=@sql+' from chkattend_ds where datediff(m,日期,'''+@date+''')=0 group by 身份证号,原因'
insert #aa exec (@sql)