【发布时间】:2016-04-02 21:24:15
【问题描述】:
在新的 SSRS 2008 报告中,我将内联 SQL 更改为存储 程序,因为这是我正在从事的项目的要求。 SQL 在 SSRS 2008 报告中运行良好,但在存储过程中存在问题。
显示的错误信息如下:
数据集 Msg 8114 的查询执行失败,级别 16,状态 1 过程 spRec, 第 0 行将数据类型 varchar 转换为 int 时出错。
如果我只选择 1 个报告,则存储过程有效。但是,如果我选择 2 个或更多报告,则会发生上述错误。
SSRS 2008 报告在主 tablix 中有 18 个嵌入式 tablix。这 SSRS 主 tablix 中的嵌入式 tablix 将根据用户的报告参数显示选定的报告。嵌入的报告将根据报告编号显示。此外,我只希望从 SQL 返回所选报告的数据。
我希望这种情况发生,因为运行中的数据将超过每次唯一运行所需的数据。注意:返回的数据将全部采用相同的格式。每个数据行中都会有一列显示应为哪个报告编号选择数据。
报告参数设置为允许多个值和数据类型 = 文本。 将数据传递给报表参数的数据集如下所示:
SELECT 'Locator' AS rptName, 1 AS rptValue
UNION
SELECT 'letter',2
UNION
SELECT 'Wallet ', 3
UNION
SELECT 'Cum Stu', 4
UNION
SELECT 'Attend', 5
UNION
SELECT 'Test',6
每个部分之前的 SQL 如下所示:
IF 1 in (@report)
IF 2 in (@report)
我尝试将报告参数的属性更改为整数和 如果上面列出的语句,但它没有工作。
那么你能告诉我我能做些什么来解决我的问题吗?
【问题讨论】:
-
仅从查询分析器运行的过程可以正常工作吗?我不明白你如何调用该过程,以及它的内部......
标签: sql-server reporting-services ssrs-2008 ssrs-2008-r2 ssrs-tablix