0

我正在从 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

这也可能是一个问题吗?

4

1 回答 1

0

我解决了我的问题,在我的整个过程中,我有一个调试正在运行,以解决如下问题:

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

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

于 2012-10-05T10:10:02.693 回答