如何从存储过程中填充SSRS中的数据集

时间:2012-07-13 15:40:00

标签: tsql reporting-services ssrs-2008

我正在使用SQL中的存储过程创建SSRS报告,当我向报表添加数据集时,我发现我必须将其添加到我的过程的顶部,以便将字段返回到我的数据集来自存储过程:

IF 1=2 SELECT '' as [Date], '' as [Portfolio ID], '' as [Portfolio Base Ccy], 0 as [All in Market Value Base], 0 as [All in Market Value Converted]

为什么我必须这样做?为什么SSRS不能简单地接受:

SELECT [Date], [Portfolio ID],   [Portfolio Base Ccy], [All in Market Value Base], [All in Market Value Converted]
FROM @Worktable

从我的程序底部或

SELECT * FROM @Worktable

编辑: 好吧,我想我已经在我的程序中缩小了我的问题,我的程序中有一个调试参数。因此,如果此参数设置为“Y”,那么我将显示我的过程的每个步骤,这使调试更容易(如果需要,我可以添加一个示例)。同样在我的程序结束时,我的最终结果集的if语句表示:

IF @ReportType IN ('SSD', 'TTD', 'STD')
BEGIN
SELECT.........
END

IF @ReportType IN ('SS', 'TT', 'ST')
BEGIN
SELECT.........
END

这也是一个问题吗?

1 个答案:

答案 0 :(得分:0)

我解决了我的问题,一直到我的程序,我有一个调试运行,如下所示:

IF @Debug = 'Y'
    BEGIN
        SELECT @Section AS Section
        SELECT * FROM #Worktable ORDER BY [Portfolio ID]
    END

这导致ssrs对报告的元数据感到困惑。我现在已经修复了我的程序,导致这种情况不发生,现在我不需要“IF 1 = 2 SELECT ........”