2016-04-14 8 views
0

Wir haben einen Bericht, der Tabelle A ausgibt. Wir haben Tabelle B zum Berichtsmodell hinzugefügt (wir haben dem Bericht aus Tabelle B einige Felder hinzugefügt), was eine Viele-zu-Eins-Beziehung ist zu Tabelle A. Jetzt, wenn wir den Bericht ausführen, erhalten wir mehrere Zeilen, was aufgrund der Beziehung zwischen Tabelle A und Tabelle B zu erwarten ist. Das Problem ist, wir wollen nur auf dem Bericht die anzeigen.Nur den aktuellsten Datensatz im Bericht anzeigen

letzter Datensatz von Tabelle B, basierend auf dem "Erstellungsdatum".

Ich habe versucht, eine MAX (fields.CreationDate!)

ich Informationen zu setzen, wie gefunden: https://social.msdn.microsoft.com/forums/sqlserver/en-US/2bc16c90-21d6-4c03-a17f-4a5922db76fe/displaying-records-by-max-date-in-ssrs

Aber wenn ich so etwas tun, erhalte ich eine „Aggregat-Funktion nicht verwenden können ... ..." Error.

Wenn dies eine SQL-Anweisung für TableB war, wäre es entlang dieser Linien den jüngsten Datensatz nur angezeigt werden:

SELECT DISTINCT [ID], [PID], [Inputdate], [Changed_Date] FROM (SELECT [ID], [PID], [Inputdate], [Changed_Date], DENSE_RANK() über (Partition durch PID Sortieren nach Changed_Date DESC) als MyRank von TableB ) als RankSelect WHERE MyRank = 1 ORDER BY PID

Dies gibt mir den neuesten Datensatz für TableB. Ich weiß technisch, dass ich dem Berichtsmodell eine Ansicht oder etwas hinzufügen könnte, aber ich möchte dies nicht tun, da ein anderer Bericht ausgeführt werden könnte, der einen historischen aller Datensätze in TableB möchte. Ich hoffe also, die obigen Ergebnisse in den Bericht einfließen zu lassen, ohne das Berichtsmodell zu berühren. In dem nur der letzte Datensatz von TableB in den Bericht aufgenommen wird. jede Hilfe zu schätzen wissen, wie wir den Bericht nur begrenzen

Antwort

0

Ich konnte keine Lösung finden, um die Daten im Bericht selbst zu filtern. Daher entfernte ich TableB aus dem Berichtsmodell und ersetzte es durch eine Ansicht von TableB, die nur den jüngsten Datensatz als mit TableA verknüpft zurückgibt. Nicht ideal, wie ich weiß irgendwann werden sie um einen Bericht bitten, um "alle Einträge" aus TableB anzuzeigen, aber diese Brücke später überqueren :-)

1

Für Ihre Tabelle B, stellen Sie einen FILTER für die ErstellDatum basierend auf dem MAX das letzte Datum Datensatz aus Tabelle B Anzeige Datum über der Datensatz.

enter image description here

Dadurch wird die Datensätze nur angezeigt werden, wenn die ErstellDatum den MAX ErstellDatum aus Ihrem Daten-Set übereinstimmt.

+0

Vielen Dank für das oben, aber wenn ich einen Filter verwende, ich Erhalte den folgenden Fehler: "Ein FilterValue für das Dataset 'DataSet1' enthält eine Aggregatfunktion. Aggregatfunktionen können nicht in Datasetfiltern oder Datenbereichsfiltern verwendet werden." Ich erhalte diesen Fehler, wenn ich den Filter auf den Tablix-Filter oder den DataSet-Filter anwende. – Kocheese

Verwandte Themen