特定の日付の顧客のランクを前日と比較するkpiの作成に取り組んでいます。次に、リストが生成されたものに関して、その顧客のランクが上がったか下がったかを確認できます。私の状況では、それらは収益順に並べられています。
ランク関数を使用して顧客を簡単にランク付けしてレポートを提供することはできますが、これらのランクを日ごとに比較するkpiを作成する場合、これにどのように取り組むべきかを理解するのに苦労しています。ランク自体はデータとして保存されるものではなく、ランク関数を使用してその場で作成する必要があるものです。
これは、日付スプライスなしで顧客のランクを提供する最初の開始レポートを作成するために使用しているmdxクエリの例です。
WITH SET [RevRank] AS
ORDER (
[Customer].[Customer Id].CHILDREN ,
[Measures].[Revenue], BDESC)
MEMBER [Measures].[RANKRevenue] AS RANK([Customer].[Customer Id].CurrentMember, [RevRank] )
SELECT NON EMPTY { [Measures].[Revenue], [Measures].[Fact Order Count], [Measures].[RANKRevenue] } ON COLUMNS,
NON EMPTY TopCount( { ([RevRank] ) } , 100, [Measures].[Revenue]) ON ROWS
FROM [DW]
これから、特定の日付(日)でスプライスし、そのランクをkpi内の前日と比較しようとしています。それで、私は最初にこのクエリを分割することに取り組んでいます。これをより簡単に行うために、事前に計算されたセットと事前に計算されたメンバーを作成しました。今、私はこのセットとメンバーを1日で作成する方法を理解しようとしています。そうすれば、少なくとも1日と次の日を比較することができます。
2012年1月26日更新:わかりました。これについては少し先に進んでいますが、ランクをクエリに取り込む際に問題が発生しています。以下のクエリでは、ランキングがnullになっています。うまくいけば、誰かがこのクエリの問題を見ることができます。
WITH MEMBER [Measures].[PrevDayRevenue] AS
( [Measures].[Revenue], ParallelPeriod ([Date Link].[PK Date].[PK Date],1))
SET [RevRankPrevOrder] AS
ORDER (
[Customer].[Customer Id].Members ,
[Measures].[PrevDayRevenue],
BDESC)
MEMBER [Measures].[RANKRevenuePrevOrder] AS RANK([Customer].CurrentMember, [RevRankPrevOrder])
SET [RevRankCurrOrder] AS
ORDER (
[Customer].[Customer Id].Members ,
[Measures].[Revenue],
BDESC)
MEMBER [Measures].[RANKRevenueCurrOrder] AS RANK([Customer].CurrentMember, [RevRankCurrOrder])
SELECT NON EMPTY { [Measures].[Revenue], [Measures].[PrevDayRevenue], [Measures].[RANKRevenuePrevOrder], [Measures].[RANKRevenueCurrOrder] } ON COLUMNS,
NON EMPTY { ( [RevRankCurrOrder] ) } ON ROWS
FROM [DW]
WHERE {[Date Link].[PK Date].&[2012-01-08T00:00:00]}