我正在使用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
这也是一个问题吗?
答案 0 :(得分:0)
我解决了我的问题,一直到我的程序,我有一个调试运行,如下所示:
IF @Debug = 'Y'
BEGIN
SELECT @Section AS Section
SELECT * FROM #Worktable ORDER BY [Portfolio ID]
END
这导致ssrs对报告的元数据感到困惑。我现在已经修复了我的程序,导致这种情况不发生,现在我不需要“IF 1 = 2 SELECT ........”