私は、2つの日付の間の各月の15日目のメジャー値を返すMDXクエリを作成したいと考えています。複数の並列期間を設定するにはどうすればよいですか?
例えば、2010-01-01および2016年12月15日のための結果は以下のようにすべきである:
2016-12-15: 123
2016-11-15: 789
2016-10-15: 556
(...)
2010-01-15: 456
私は(私はDateDiff関数を使用して2つの日付の間の月数を計算することができる知っている)関数。また、ParallelPeriod()関数を使用して前月の値を取得できます。
しかし、これらの値を一緒に使用して1からDateDiff()の結果を「反復」して、「Days」セットに複数のParallelPeriod()呼び出しを作成することはできません。
WITH
MEMBER NumberOfMonths AS
DateDiff("m",
[Calendar].[Day].&[20100101].MemberValue,
[Calendar].[Day].&[20160315].MemberValue
)
SET Days AS {
PARALLELPERIOD([Calendar].[Month], 1, [Calendar].[Day].&[20160315]),
PARALLELPERIOD([Calendar].[Month], 2, [Calendar].[Day].&[20160315]),
PARALLELPERIOD([Calendar].[Month], 3, [Calendar].[Day].&[20160315])
-- (...) How to generate this set automatically, using NumberOfMonths?
}
SELECT
{ Days } ON 0,
{ Quantity } ON 1
FROM [MyCube]
助けてください。
あなたはキューブの開発者ですか?もしそうなら、最良のアプローチは、次元DayOfMonthを追加することです。これは、基本的に1 => 31の数値になります。上記の方がはるかに簡単です。 – whytheq