Create Procedure Pd_ZzMj/*种植面积*/
as
Declare @Sql Varchar(8000)
Set @Sql='Select 年份 ,乡团名称 '
Select @Sql=@sql+',Max(Case 作物名称 When '''+zwmc+''' then 种植面积 Else 0.0 end )
['+zwmc+']'
from (select zwmc From tblzwbasic) as a
Select @sql=@sql+',Sum(种植面积) as 总面积 into ##临时表 from vw_zzmjbasic group by 年份,乡团名称'
exec(@sql)
Go--调用:
select * from ##临时表drop table ##临时表
as
Declare @Sql Varchar(8000)
Set @Sql='Select 年份 ,乡团名称 '
Select @Sql=@sql+',Max(Case 作物名称 When '''+zwmc+''' then 种植面积 Else 0.0 end )
['+zwmc+']'
from (select zwmc From tblzwbasic) as a
Select @sql=@sql+',Sum(种植面积) as 总面积 into ##临时表 from vw_zzmjbasic group by 年份,乡团名称'
exec(@sql)
Go--调用:
select * from ##临时表drop table ##临时表
2:视图中是不能用EXEC来执行动态SQL语句的。
asselect 年份,乡团名称,Max(作物名称) as 作物名称,Sum(总面积) as 总面积 from vw_zzmjbasic group by 年份,乡团名称
你没有理解我的意思?
视图:select 年份,乡团名称,Max(作物名称) as 作物名称,Sum(总面积) as 总面积 from vw_zzmjbasic group by 年份,乡团名称
程序:select * from view where ......
它的性質就是一個帶 argument 的view
表值函数返回的表的结构必须是固定的,但我的结构是不确定的,所以也是不行的,
谢谢,
希望大家继续关注!