Reporting Services - Abfrage mehrwertiger Parameter, die keine Ergebnisse zurückgibt

Mit SSRS (SQL Server 2005) habe ich zwei Berichte erstellt. Nennen wir sie zur einfacheren ErklärungMAIN_REPORT undSUB_REPORT.

MAIN_REPORT Führt eine Abfrage aus, die eine Reihe von Bereichen mit mehreren TagNames pro Bereich zurückgibt:

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

Wenn Sie eine der Bereichszellen auswählen, wird diese geöffnetSUB_REPORT und übergibt einen Parameter an@ParentTagNames mitJoin(Parameters!ResultsOfSearch.Value,","). ResultsOfSearch entspricht der obigen Spalte "Tagname" (ich habe noch nicht herausgefunden, wie die Tagnamen auf die Namen im ausgewählten Bereich beschränkt werden sollen, aber ich werde mich später darum kümmern).

SUB_REPORT Nimmt den übergebenen Parameter und fragt eine umfangreiche Datenbank nach dem Tag-Namen ab und gibt eine minimale, maximale und durchschnittliche Anzahl verfügbarer Werte zurück:

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

jedoch, wenn@ParentTagNames Ist der Wert größer als ein Wert, werden keine Daten zurückgegeben. Wenn es einem einzelnen Tag entspricht, werden Daten zurückgegeben. Ich nahm an, dass es etwas mit der Formatierung der darin enthaltenen Daten zu tun haben muss@ParentTagNames wie es vergangen istMAIN_REPORT, aber es scheint keine Rolle zu spielen.

Ich habe die folgenden Formate ausprobiert:

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

Ich habe dafür gesorgt, dass der Mehrfachwert für den Parameter überprüft wird@ParentTagNames. Google hat mich erfolgreich gescheitert.

Jemand?

EDIT: Profiler Magie!

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'

Antworten auf die Frage(1)

Ihre Antwort auf die Frage