私のように構造化対策の累積合計があります。現在の日付への最初のアプリケーションの日からスローSSAS累積合計計算されるメジャー
Aggregate (
{ NULL : [Date].[Year - Month - Date].CurrentMember }
,[Measures].[Applications])
を、日付範囲の日数は、連続している必要があります。
日付ディメンションには、1900年1月1日〜将来の日付が含まれます。
私は次のように計算された指標を構築することにより、最初のアプリケーション、および将来の日付より前の日付を排除しようとしてきました:
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
私が使用して必要な場合にのみ集約することで、これを最適化する試みに成功していませんEXISTS関数とEXCEPT関数などを使用して、case文の代わりにSCOPEを使用します。
キューブをブラウズしてのサイズを[Date].[Year - Month - Date]
で定義すると、それは非常に遅いです。
あなたは '集計'を使う必要がありますか、 '合計'を使うのはいいですか? – whytheq
この場合、合計が有効です。 – samb0x