1

私はSQLServerの表形式モデルを研究しています。
MDX方程式をDAX方程式に変換するのに苦労しています。

次の計算を使用して、毎月のPCカウントの変化(増分または減少)率を表示したいと思います。
(当月のPCカウント-前月のPCカウント)/前月のPCカウント

これはMDX方程式であり、多次元モデルでうまく機能しています。
[PCカウント]は最後の空でない値です。

(([Date].[Fiscal QTR].CURRENTMEMBER, [Measures].[PC Count])
-
([Date].[Fiscal QTR].PREVMEMBER, [Measures].[PC Count]))
/
([Date].[Fiscal QTR].PREVMEMBER, [Measures].[PC Count])

今月のPCカウントのDAX方程式を作成しました

PC Count:=
CALCULATE(
    SUM([PC Count]),
    FILTER(Time, Time[DateKey] = MAX(vwFact_PCCount[DateKey]))
)

これは、グリッドビュー(SSDT)とパフォーマンスポイントでうまく機能しています。ただし、前月のPCカウントの次のMDX方程式は、グリッドビュー(SSDT)で正常に機能していますが、この方程式は、下軸(月)のパフォーマンスポイントでエラーを示しています。

Previous Month Count:=CALCULATE(
    SUM([PC Count]),
    FILTER(Time, Time[DateKey] = FORMAT(DATE(LEFT(Max(vwFact_PCCount[DateKey]),4),
                                             RIGHT(LEFT(Max(vwFact_PCCount[DateKey]),6),2)
                                             ,1)-1
                                        , "yyyyMMdd") *1)
)

前月のカウント式の何が間違っているのかわかりません。DAXを使用してこの結果を取得するにはどうすればよいですか?

4

1 に答える 1

1

「当月のPCカウント」式は、常にテーブルの最新の月になるように記述されています。これは、投稿に表示するMDXコードと同じではありません。

MDX-今月のPCカウント

([Date].[Calendar Month].CURRENTMEMBER, [Measures].[PC Count])

DAX-今月のPCカウント

SUM('table name'[PC Count])

DAXでは、「現在」の概念は状況に応じたものです...良い議論については、MSDNフォーラムのこのスレッドを参照してください。

次に、AdventureWorksDW2012データセットを使用したDAXの現在/以前の状況を示す例を示します。

DEFINE
    MEASURE 'Internet Sales'[SalesAmount_CurrMth] = 
        'Internet Sales'[Internet Total Sales]
    MEASURE 'Internet Sales'[SalesAmount_PrevMth] = 
        CALCULATE (
             'Internet Sales'[SalesAmount_CurrMth]
            ,PREVIOUSMONTH('Date'[Date])
        )
EVALUATE (
    FILTER(
        ADDCOLUMNS (
            SUMMARIZE (
                'Date'
                ,'Date'[Calendar Year]
                ,'Date'[Month Name]
            )
            ,"Current Month", 'Internet Sales'[SalesAmount_CurrMth]
            ,"Prior Month", 'Internet Sales'[SalesAmount_PrevMth]
        )
        ,'Internet Sales'[SalesAmount_CurrMth] <> BLANK()
    )
)

これを試して...

Previous Month Count :=
CALCULATE (
     SUM('<insert table name here>'[PC Count])
    ,DATEADD('Date'[Date],-1, MONTH)
)
于 2013-01-08T14:12:45.910 に答える