报告服务 - 多值参数查询返回任何结果(Reporting Services - Multi-val

2019-06-25 14:19发布

使用SSRS(SQL Server 2005中)我已经成立了两份报告。 为了便于说明,我们姑且称之为MAIN_REPORTSUB_REPORT

MAIN_REPORT运行一个返回一组区域,每个区域内的多个标记名查询:

AREA    Tagname
----------
A1        T1
A1        T2
A2        T3
A3        T4

如果您选择的区域的小区之一,它打开SUB_REPORT和传递参数给@ParentTagNames使用Join(Parameters!ResultsOfSearch.Value,",") ResultsOfSearch等于上述Tagname列(还没有想出如何将标记名限制为仅在选定区域中的人,而是以后我会担心)。

SUB_REPORT需要传递的参数,并查询了标记名一个庞大的数据库,并返回一个最小值,最大值,以及可用值的平均值为:

SELECT
h.TagName as TagName,
Minimum = convert(decimal(38, 2), Min(h.Value)), 
Maximum = convert(decimal(38, 2), Max(h.Value)), 
Average = convert(decimal(38, 2), Avg(h.Value)) 
FROM INSQL.Runtime.dbo.History h 
WHERE h.TagName in (@ParentTagNames)
AND h.wwVersion = 'LATEST'
AND h.wwRetrievalMode = 'Cyclic'
AND h.wwResolution = '60000'
AND h.Value > '-1.0'
AND h.DateTime >= '2009-09-01 12:00:00'
AND h.DateTime <= '2009-09-02 16:00:00'
GROUP BY h.TagName

然而,如果@ParentTagNames等于一个以上的值,则返回任何数据。 如果它等于一个标签,它返回的数据。 我想这一定是有一些东西需要与内部的数据的格式@ParentTagNames ,因为它是从传递MAIN_REPORT ,但它似乎并不重要。

我试过以下格式:

T1,T2,T3,T4,T5,T6
'T1','T2','T3','T4','T5','T6'

我确定的多值的检查参数@ParentTagNames 。 谷歌已经成功地让我失望。

任何人?

编辑:探查魔法!

exec sp_executesql N'SELECT
    h.TagName as TagName,
    Minimum = convert(decimal(38, 2), Min(h.Value)), 
    Maximum = convert(decimal(38, 2), Max(h.Value)), 
    Average = convert(decimal(38, 2), Avg(h.Value)) 
FROM INSQL.Runtime.dbo.History h 
WHERE h.TagName in (@ParentTagNames)
AND h.wwVersion = ''LATEST''
AND h.wwRetrievalMode = ''Cyclic''
--AND h.wwResolution = @Resolution
AND h.wwResolution = ''60000''
AND h.Value > ''-1.0''
--AND h.DateTime >= @StartTime
--AND h.DateTime <= @EndTime

AND h.DateTime >= ''2009-09-01 12:00:00''
AND h.DateTime <= ''2009-09-02 16:00:00''

GROUP BY h.TagName',N'@ParentTagNames nvarchar(46)',@ParentTagNames=N'M12_CPM_Filling_250.Value,M8_Filling_391.Value'

Answer 1:

我想你可能需要在一个MAIN_REPORT分调用强制SSRS把传入的参数,并把它变成一个数组。

参考: http://www.stuffthatjustworks.com/HowToPassMultivalueReportParametersToSubreportsInReportBuilder.aspx



文章来源: Reporting Services - Multi-value parameter query returning no results