--行转列脚本
declare @sql nvarchar(4000)
set @sql='Select 姓名,年,周'
Select @sql=@sql+',sum(case when 类型='''+类型+ ''' then Total else 0 end) As '''+类型+''''
 From 表名 Group By 类型
Print @sql
set @sql=@sql+' From 表名 Group By 姓名,年,周'
Print @sql
execute sp_executesql @sql
以上结果运行正常,但是我有个程序需要这个结果,希望能把上面的脚本集合到视图,这样直接select * from 视图即可,但是视图不能有变量,那我程序现在该如何调用上面这个脚本的结果

解决方案 »

  1.   

    你错误理解视图了.
    视图是建立在现有的数据结构之上的,是基于表或视图的,是从基本数据中进行抽取.
    你这段程序,是个过程,从某种意义上讲,过程是创建新结构和新数据的程序,它不是表,视图是不能建立在过程上的.
    因此,最简单的办法就是,把这段程序写成一个存储过程,然后,需要用视图的时候,调用这个过程.
      

  2.   

    如果一定要用调用视图的方式取得这段程序的结构,可以将存储过程获得的记录集写入临时表,用查询临时表的方式调用.
      

  3.   

    用存储过程啊
    存储过程再调用存储过程