2016-07-19 22 views
0

Ich verwende Power Pivot-Add-in, um ein Data Warehouse für die Erstellung dynamischer Tabellen und Grafiken (streng Datenquelle ist Excel) zu erstellen, aber ich habe ein Problem mit einer Berechnung in den Beziehungen. Mein Datenmodell ist die folgende:Wie erhalten Sie Werte aus verschachtelten Relationen in Power Pivot?

My Snowflake data warehouse model

Also für die Faktentabelle „fSales“ Ich brauche die dCostDetail[Value] pro dWorkCost[Value] zu multiplizieren, um die fSales[Expenses] Menge zu erzeugen.

Ich habe versucht, die Formel zu verwenden, aber ich bekomme einen Fehler: bezogen aber es nicht zu verschachtelten zwischen den Beziehungen, z. fSales[Expenses] = related(dCostDetail[Value])*related(dWorkCost[Value])

Auch habe ich versucht, die nächste Formel zu verwenden:

fSales[Expenses] = related(dWorkCost[Value]) * Calculate(Calculate(Calculate(Value(dCostDetail[Value]), Userelationship(fSales[IdProduct],dProduct[Sku]),Userelationships(dProduct[IdCateg],dCategory[IdCategory]), Userelationships(dCategory[IdCategory],dCostDetail[IdCateg])))) 

Und ich brauche diese „Art“ von normalisierten Modell, um die Details zu haben, wenn ich die Informationen analysieren, z.B. Filter, aber wenn Sie einen anderen Weg kennen, um die Berechnung zu generieren, wäre es in Ordnung.

Antwort

0

RELATED funktioniert nicht in Measures, da es auf Datensatzebene ausgewertet wird. Sie sind also auf dem richtigen Weg, aber Sie müssen eine Spalte in Powerpivot in der fSales-Tabelle namens "Cost Detail" oder was auch immer erstellen und eine RELATED-Formel verwenden, um diesen Wert aus der CostDetail-Tabelle abzurufen. Erstellen Sie eine andere Spalte und führen Sie das gleiche aus, um den Wert von dWorkCost in die Tabelle fSales zu übernehmen.

Dann können Sie ein Maß für die Kosten wie folgt tun:

Kosten: = SUM ([was auch immer Sie genannt CostDetailColumn]) * SUM ([was auch immer Sie genannt WorkCostColumn])

Sie sollten in der Lage sein, um dieses Maß in einen Drehpunkt fallen zu lassen und es sollte tun, wonach Sie suchen.