過去にイベント数のレポートに使用したキューブがあります。たとえば、7 月について、製品ごとに発生したイベントの数を分類したいとします。
私は次のようなものを持っています:
SELECT Measures.[Count] ON COLUMNS,
Product.[Product Id].Members ON ROWS
FROM [MyCube]
WHERE [Time].[Month].[July 2012]
次のような出力で:
Count
Car 5
Train 6
ここで、出力を次のように変更したいと思います。
Count Avg Days since sale
Car 5 12
Train 6 14
それ、どうやったら出来るの?
MDX でこれに対する解決策を見つけるために数時間を費やしましたが、これを行う方法が見つかりません。(私はMDXに非常に慣れていません)
COLUMNSまたはROWSのいずれかに日を含めた場合に機能するいくつかのソリューションを見つけました。例えば:
WITH MEMBER Measures.[NumDays] as
count([Time].[Date].CurrentMember :
[Time].[Date].&[2012-07-27T00:00:00])
SELECT
([Time].[Date].Members,{Measures.[Count],Measures.[NumDays]}) ON COLUMNS,
[Product].[Product Id].Members ON ROWS
FROM [MyCube]
WHERE [Time].[Month].[July 2012]
これは私を本当に近づけます。結果は次のようになります。
July 1 July 2 ...
Count Num Days Count Num Days ...
Car 1 24 3 23
Train 0 24 1 23
この結果セットを使用して、.NET コードで必要なものを取得できます。販売からの平均日数を加重平均で計算できます。
たとえば、車の場合は(1*24 + 3*23)/(1 + 3)
. これを機能させるには、.NET コードでいくつかの破損した不幸なことを行う必要があり、必要なデータの約 80 倍のデータをサーバーから送り返す必要もあります。
[Time].[Date].Members
私が MDX で遭遇した問題は、結果セットから取り出すとすぐにで[Time].[Date].CurrentMember
あり[Time].[Date].All
、そこから意味のある計算を行うことができないということです。
2 番目の MDX をサブクエリとして使用し、返される値を必要な方法でロールアップする方法はありますか?
サブクエリのアプローチは私のソリューションには必要ありませんが、それが可能かどうか興味があります。どんな助けでも大歓迎です。前もって感謝します。