Ich habe eine kumulative Summe einer Maßnahme strukturiert wie:Langsam SSAS kumulative Summe berechnete Kennzahl
Aggregate (
{ NULL : [Date].[Year - Month - Date].CurrentMember }
,[Measures].[Applications])
Ab dem Zeitpunkt der ersten Anwendung auf das aktuelle Datum, die Tage des Datumsbereiches muss zusammenhängend sein.
Die Datumsdimension enthält jedoch Datumsangaben von 1900-01-01 bis weit in die Zukunft.
Ich habe versucht, Daten vor der ersten Anwendung zu beseitigen und zukünftige Termine, indem die berechnete Kennzahl Strukturierung wie folgt:
CREATE MEMBER CURRENTCUBE.[Measures].[Applications TD] AS
CASE
WHEN
/* Eliminates dates before first applications, i.e. year 1900-01-01 */
Aggregate (
{ NULL : [Date].[Year - Month - Date].CurrentMember }
,[Measures].[Applications]) < 0
THEN NULL
WHEN
/* Eliminates dates after today */
[Date].[Year - Month - Date].CurrentMember.MemberValue >= StrToMember('[Date].[Date].&['+Format(Now(),"yyyy-MM-ddT00:00:00")+']').MemberValue
THEN NULL
ELSE
Aggregate (
{ NULL : [Date].[Year - Month - Date].CurrentMember }
,[Measures].[Applications])
END
Ich habe nur durch Aggregation in jeder Versuch, dies zu optimieren nicht erfolgreich gewesen, wo mit Hilfe benötigt ein SCOPE als Alternative zur case-Anweisung, die EXISTS- und EXCEPT-Funktionen und viele andere verwendet.
Beim Durchsuchen des Würfels und Dimensionierung [Measures].[Applications TD]
von [Date].[Year - Month - Date]
benutzerdefinierte Hierarchie ist es schrecklich langsam.
brauchen Sie 'Aggregate' oder ist es in Ordnung,' Sum' zu verwenden? – whytheq
Summe sollte in diesem Fall funktionieren. – samb0x