2011-01-04 4 views
5

Dies scheint eine sehr einfache Frage zu sein, aber ich versuche, den 2. Wert in einem Dataset als Matrix-Header-Wert anzuzeigen.Get 2th Value in Dataset in Reporting Services

In diesem Bericht sagen wir, dass ich 2 Datensätze habe. In Dataset1 habe ich eine Abfrage, die 3 Werte für eine Dropdown-Parameterauswahl herunterlädt. In Dataset2 gebe ich eine Ergebnismenge zurück und habe sie an meine Matrix gebunden.

Innerhalb der Matrix habe ich meine sich wiederholenden Spalten und dann 3 zusätzliche gruppierte Spalten auf der rechten Seite, die Aggrigate Werte haben, die ich anzeigen möchte. In der Kopfzeile dieser 3 Spalten möchte ich die 3 Werte anzeigen, die in meinem Parameter-Dataset angezeigt werden. Im Rahmen der Matrix (und seine Daten-Set), kann ich die ersten und letzten Werte eines anderen Datensatzes (Dataset1 in diesem Fall) erhalten, indem mit:

=First(Fields!DateDisplay.Value, "Dataset1") 
=Last(Fields!DateDisplay.Value, "Dataset1") 

Ich muss so etwas wie bekommen:

=Second(Fields!DateDisplay.Value, "Dataset1") 

Wie kann ich das ausführen, ohne gegen die Scoping-Regeln für Aggregatspalten zu verstoßen?

Antwort

4

Für SSRS 2008 R2 können Sie dies tun, wenn jede Zeile Ihres Datasets eine ID-Spalte hat, indem Sie LookUp() function verwenden.

=LookUp(Fields!Row.Value,1,Fields!DateDisplay.Value,”Dataset1”) 
=LookUp(Fields!Row.Value,2,Fields!DateDisplay.Value,”Dataset1”) 
=LookUp(Fields!Row.Value,3,Fields!DateDisplay.Value,”Dataset1”) 

Wenn Sie eine Kennung Spalte Sie nicht ROW_NUMBER() man in erstellen können

Abfrage:.

SELECT ROW_NUMBER() OVER(ORDER BY DateDisplay) AS Row, DateDisplay 
FROM Dates 

Ergebnisse:

Row DateDisplay 
--- --------- 
1 June 1st  
2 March 12th  
3 November 15th 

H Es gibt einen Link zu einem ähnlichen Thread in MSDN Foren: Nth row element in a dataset SSRS

+0

Das ist falsch - wenn Sie dies in SSRS 2008r2 versuchen, erhalten Sie einen Fehler, der besagt, dass die Lookup-Funktion eine falsche Anzahl von Parametern hat. Es dauert 4 nicht 3. Ich würde dies abstimmen, aber ich kann nicht! – leinad13

+0

@ leinad13 Ich habe den Beitrag bearbeitet. Dies sollte jetzt klarer sein. Mein Fehler, Entschuldigung für die Verwirrung. – dotNetE

+2

@dotNetE Sieht so aus, als hätten Sie die Parameter in der falschen Reihenfolge, sollte = LookUp (2, Felder! Row.Value, Felder! DateDisplay.Value, "Dataset1") sein – Automate

0

Wenn Sie SSRS-2012 oder 2014 verwenden, dann muss man unter Ausdruck verwenden.

=LookUp(AnyRowNumber, Fields!RowNumber.Value,Fields!DisplayField.Value,”DatasetName”) 

Ich habe versucht, über sie nicht in meinem Fall arbeiten.