2016-06-28 8 views
0

以下の結果が得られるssas計算タブでクエリを作成しようとしています。これはYTD計算のようなもので、2016年2月1日から今日まで計算しています。私はManagement Studioで以下のクエリを書いていますが、SSASの計算に変換してCalculationsタブに書き込む必要があります。開始日から今日までの売上の合計に対するSSASのMDX計算

WITH 
    MEMBER [Measures].[ytd Sales Target 2] AS 
    Sum 
    (
     StrToMember 
     (
      '[Sales Date].[Date].&[' + Format(Now(),'yyyy-') + '02-01T00:00:00]' 
     ) 
     : 
     StrToMember 
     (
       '[Sales Date].[Date].&[' + Format(Now(),'yyyy-') + Format(Now(),'MM-') 
      + 
       Format 
       (
       Now() 
       ,'dd' 
      ) 
      + 'T00:00:00]' 
     ) 
    ,[Measures].[sales target] 
    ) 
SELECT 
    [Measures].[ytd Sales Target 2] ON 0 
FROM [sales]; 
+0

年 - >月 - >日付の日付階層はありますか?よりダイナミックな計算を簡単に作成できます。 – mxix

答えて

0

のように簡単でなければなりません:この方法では、アカウントにあなたの日付を取ることはありません

CREATE MEMBER CURRENTCUBE.[Measures].[ytd Sales Target 2] 
AS 
Sum 
    (
     StrToMember 
     (
      '[Sales Date].[Date].&[' + Format(Now(),'yyyy') + '-02-01T00:00:00]' 
     ) 
     : 
     StrToMember 
     (
       '[Sales Date].[Date].&[' + Format(Now(),'yyyy-MM-dd')+'T00:00:00]' 
     ) 
    ,[Measures].[sales target] 
    ), 
VISIBLE = 1; 

。しかし少しの変更を加えれば、「時間を意識する」ことができます。私は2月1日前の日付を少し調べて無視しました。

CREATE MEMBER CURRENTCUBE.[Measures].[ytd Sales Target 2] 
AS 
iif(
    [Sales Date].[Date].CURRENTMEMBER.MEMBER_KEY < StrToMember('[Sales Date].[Date].&[' + Format(Now(),'yyyy') + '-02-01T00:00:00]').MEMBER_KEY 
    ,NULL 
    ,Sum (
     StrToMember 
     (
      '[Sales Date].[Date].&[' + Format(Now(),'yyyy') + '-02-01T00:00:00]' 
     ) 
     : 
     StrToMember 
     (
       [Sales Date].[Date].CURRENTMEMBER 
     ) 
    ,[Measures].[sales target] 
    ) 

), 
VISIBLE = 1; 
+0

これはデフォルト値 '[Sales Date]。[Date] .CURRENTMEMBER <...'を使用しますか?または、それは '[Sales Date]。[Date] .CURRENTMEMBER.MEMBERVALUE <...'であるはずですか? – whytheq

+0

@whytheq as usual =)あなたは正しく働くにはMEMBER_VALUEまたはMEMBER_KEYが必要です。私はMEMBER_KEYと一緒に行くだろう。おそらく、member_keyはINTまたはDATEです。値は文字列である可能性があります。一定 – mxix

関連する問題