我执行一个过程来生成列并在SRRS数据集中使用:
这是我的SP:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[CrossTab_MultiLV]
( @Select varchar(2000),
@Pivots1Col varchar(100),
@Summaries varchar(500),
@GroupBy varchar(100),
@OtherCols varchar(1000) = Null)
AS
set nocount on
set ansi_warnings on
declare @Vals varchar(8000);
set @Vals = '';
set @OtherCols= isNull(', ' + @OtherCols,'')
create table #temp (Pivots1 varchar(100))
insert into #temp
exec ('select distinct convert(varchar(100),' + @Pivots1Col + ',101) as Pivots1 FROM (' + @Select + ') A')
select @Vals = @Vals + ', ' +
replace(replace(@Summaries,'(','(CASE WHEN ' + @Pivots1Col + '=''' + Pivots1 + ''' THEN '),')[', ' END) as [' + Pivots1 )
from #Temp
order by Pivots1
drop table #Temp
exec ( 'select ' + @GroupBy + @OtherCols + @Vals +
' from (' + @Select + ') A GROUP BY ' + @GroupBy)
set nocount off
set ansi_warnings on
从sp上面我只想处理一些东西并通过那些SP Produce多列生成字段,但只显示两个第一列
range TotalAccount CL_Only CL_Only_Have_Rate CL_Only_No_Rate EU_CL EU_CL_Have_Rate EU_CL_No_Rate EU_Only EU_Only_Have_Rate EU_Only_No_Rate
12 3 1 1 0 2 2 0 0 0 0
它只会显示:range
TotalAccount
列,我的存储过程中是否有任何错误?
答案 0 :(得分:1)
我会放弃动态存储过程设计 - SSRS不适用于这些。
相反,我会使用固定列显示数据,并在SSRS设计中使用列组。