【发布时间】:2020-06-26 13:08:32
【问题描述】:
我是使用大量数据开发报告的新手,所以我正在寻找一些关于我遇到的问题的建议。
我正在开发一个包含 6 个参数的 SSRS 报告。每个参数都有自己的数据集,为参数指定不同的值列表。
用户可以为每个参数选择任意数量的值,但 1(日期)除外。
查询看起来像这样;
SELECT [CURR].[PERIOD]
,[CURR].[PERIOD_MTD]
,[CURR].[CATEGORY1]
,[CURR].[CATEGORY2]
,[CURR].[CATEGORY3]
,[CURR].[CATEGORY4]
,[CURR].[CATEGORY5]
,[CURR].[CALCULATION1_ITD]
,[CURR].[CALCULATION2_ITD]
,[CURR].[CALCULATION3_ITD]
,[CURR].[CALCULATION4_ITD]
,[CURR].[CALCULATION1_MTD]
,[CURR].[CALCULATION2_MTD]
,[CURR].[CALCULATION3_MTD]
,[CURR].[CALCULATION4_MTD]
FROM [BIG_TABLE] [CURR] LEFT OUTER JOIN
[BIG_TABLE] [PREV M]
ON [CURR].[PERIOD_MTD] = [PREV M].[PERIOD]
AND [CURR].[CATEGORY1] = [PREV M].[CATEGORY1]
AND [CURR].[CATEGORY2] = [PREV M].[CATEGORY2]
AND [CURR].[CATEGORY3] = [PREV M].[CATEGORY3]
AND [CURR].[CATEGORY4] = [PREV M].[CATEGORY4]
AND [CURR].[CATEGORY5] = [PREV M].[CATEGORY5]
WHERE [CURR].[PERIOD] = @YYYYMM
AND [CURR].[CATEGORY1] IN (@PARAMETER1)
AND [CURR].[CATEGORY2] IN (@PARAMETER2)
AND [CURR].[CATEGORY3] IN (@PARAMETER3)
AND [CURR].[CATEGORY4] IN (@PARAMETER4)
AND [CURR].[CATEGORY5] IN (@PARAMETER5)
这是我遇到的问题; 1 个参数有一个包含 5,500 多个值的不同列表,用户可以从中进行选择。选择所有值后,我注意到参数字段不像其他字段那样填充(下图)。
报告运行时,我收到以下错误:
此消息非常含糊,但我将其隔离为这样一个事实,即报告将在此参数中使用较少的值运行,但不是全部。
我不确定还可以尝试什么。我认为这可能是通过主数据集获取大量数据的问题。
额外信息:
通过与 SharePoint 的共享连接访问数据源
为此报告查询的表没有索引。我想知道这是否重要,因为该表大约有 26.5mill 行。
【问题讨论】:
-
当您在报表服务器上检查错误时,它告诉您什么?
-
如何将参数传递给主查询?请编辑问题以显示 dsMain 数据集查询。
-
@Larnu 我认为我没有能力做到这一点。我无法更改服务器的设置以启用远程错误。
-
@AlanSchofield 参数被插入到 WHERE 子句 IN (@parameter) 中。我将编辑问题以显示这一点。
-
您不会在 SSMS 中看到它们,不会。如果您无法访问服务器,我建议您与可以访问服务器的人交谈,因为他们可以告诉您错误。
标签: sql sql-server sharepoint reporting-services reportbuilder3.0