Wie erstelle ich in einem SSAS-Cube Measures, die als LastChild für eine nicht zeitbezogene Dimension aggregiert werden?
Die Quelldaten haben an einem beliebigen Tag viele Versionen desselben Geschäftsdatensatzes. Die Zeitdimension hat eine Granularität von DATE, nicht Sekunden & amp; Millisekunden.
Die Faktendatensätze haben einen Zeitstempel und einen inkrementellen (Identitäts-) Primärschlüssel. Eigentlich möchte ich ein Maß als letzten Wert für alle Bearbeitungen an einem bestimmten Datum berechnen.
Die Optionen, die ich bisher gesehen habe, fallen in eine von zwei Kategorien:
ODER
Gibt es einen Sweet Spot oder eine alternative Technik, um dieses Problem zu lösen?
Die natürliche Hierarchie der Daten ist:
Nein, Sie können absolut kein latChild-Attribut ohne Zeitdimension erstellen:
Sie können eine Abfrage auf Ihrem DSV erstellen, um den letzten untergeordneten Wert anzugeben und damit eine Measuregruppe zu erstellen. Beispiel:
Skript:
%Vor%sehr einfaches Skript, das eine Dim- und eine Faktentabelle erstellt. Hier ist eine einfache Auswahl und nach dem Ergebnis denke ich, dass Sie wollen, also 3 und 20 wären die letzten Werte basierend auf der ID der Dimension:
Um das zu bauen, ist das sehr einfach, klicken Sie einfach mit der rechten Maustaste auf Ihren DSV und fügen Sie eine neue benannte Abfrage hinzu und informieren Sie die Abfrage, um Ihren letzten Wert zu erstellen. In meinem Fall ist das:
%Vor%Erstellen Sie einen logischen Primärschlüssel und verknüpfen Sie ihn mit der Dimensionstabelle:
Klicken Sie mit der rechten Maustaste auf einen leeren Bereich, wählen Sie "Alle Tabellen anzeigen" und fügen Sie Ihre neue Tabelle hinzu.
Und erstellen Sie auf Ihrem Cube eine neue Kennzahl als "keine Aggregationen", da Sie Ihre Abfrage bereits aggregiert haben:
Ergebnis: