问题是这样的:进行查询统计时,行大概有22行,列有24列,然后进行行列转换
是采用坛子上通常的做法,如下所示
ALTER function dbo.funGetCompanySort(@str varchar(100))
returns varchar(2000)
as
begin
declare @ret varchar(2000) --返回的字符串
set @ret='Select '''+@str+''' [IndexName]'
select @ret=@ret+',['+BM+']=max(case when BM='''+BM+''' then '+@str+' end)'
from ViewCompanySort
Set @ret = @ret+' from ViewCompanySort '
return @ret
end
用上面得出的Sql语句
Select 'CityAward' [IndexName],[01]=max(case when BM='01' then CityAward end) .... From ViewCompanySort
....
做为视图里的语句,在访问视图时,出现错误:在视图中函数不充许超过256个!因为要做水晶报表统计,要用到视图!我现在的想法是能不能在函数function dbo.funGetCompanySort
动手脚,去掉max?
求各位大佬帮忙解决!真是万分感谢!
是采用坛子上通常的做法,如下所示
ALTER function dbo.funGetCompanySort(@str varchar(100))
returns varchar(2000)
as
begin
declare @ret varchar(2000) --返回的字符串
set @ret='Select '''+@str+''' [IndexName]'
select @ret=@ret+',['+BM+']=max(case when BM='''+BM+''' then '+@str+' end)'
from ViewCompanySort
Set @ret = @ret+' from ViewCompanySort '
return @ret
end
用上面得出的Sql语句
Select 'CityAward' [IndexName],[01]=max(case when BM='01' then CityAward end) .... From ViewCompanySort
....
做为视图里的语句,在访问视图时,出现错误:在视图中函数不充许超过256个!因为要做水晶报表统计,要用到视图!我现在的想法是能不能在函数function dbo.funGetCompanySort
动手脚,去掉max?
求各位大佬帮忙解决!真是万分感谢!
解决方案 »
- 关于java向sqlserver数据库中插入decimal类型数据出错的问题
- SQL 2008 Microsoft SQL Server Management Studio 中能查看某个数据库是否有表被锁定了?
- SQL2005与SQLCe同步问题!
- 求一简单SQL查询语句,想了很久,望高手指点
- 谁有在MSSQL2000上用的用户删除数据或误操作以后回复的软件?
- 请大家帮我看看这个SQL语句怎么写
- 求高高手一条SQL语句啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!标题要长
- 关于数据导出成文件的问题??在线等答案!!紧急!!!!
- 有一个关于数据库连接不上的问题请教(CDataSource类的使用)(UP有分~!!!):
- 远程控制sql server 服务器的启动与关闭?
- 高手指點,我要如何做?
- SQLserver 微软也开始反盗版了?
我想到一个方法也能实现,把得出的Sql语句
Select 'CityAward' [IndexName],[01]=max(case when BM='01' then CityAward end) .... From ViewCompanySort
....
拷到函数中执行,然后在视图调用函数
但总感觉很别扭
ALTER function dbo.funGetCompanySort(@str varchar(100))
returns varchar(2000)
as
begin
declare @ret varchar(2000) --返回的字符串
set @ret='Select '''+@str+''' [IndexName]'
select @ret=@ret+',['+BM+']=max(case when BM='''+BM+''' then '+@str+' end)'
from ViewCompanySort
Set @ret = @ret+' from ViewCompanySort '
return @ret
end
得到的动态Sql语句,而且要求不能使用存储过程!
只能用print 打印出sql语句,粘贴到函数中执行,因为函数中不支持exec!
搞来搞去,总觉得采用的办法好怪!
各位有什么好办法吗?
打印出的sql语句大概有5个8000字节