1

iccube を使用して、ある日付から年の初めまでの月数を計算したいと考えています。

日付ディメンションに 2 つの階層があります : [Date de sortie].[Année, semestre, trimestre, mois, jour]: 年、半年、四半期、月、日 [Date de sortie].[Année et Mois]が含まれます 年と月が含まれます

次の mdx を実行すると、良い結果が返されます (5 か月)

with 
set myData as {[Date de sortie].[Année et Mois].[Mois].&[2017-01-01]:[Date de sortie].[Année et Mois].[Mois].&[2017-05-01]} 
member nbMonths as  myData.count
select
{
    nbMonths
} on 0,
myData on 1
from [Cube]

ただし、これをパラメーター化しようとすると、計算された日付 (年の最初の日) で期間を開始するのではなく、データの最初の日付で始まる期間が使用されます。

with 
calculated member beginOfYear as dtWithDayOfYear(lookupByKey([Date de sortie].[Année, semestre, trimestre, mois, jour].[Jour], [Date de sortie].[Année et Mois].[Mois].&[2017-05-01].key),1).key
set myData as {lookupbykey([Date de sortie].[Année et Mois].[Mois], beginOfYear):[Date de sortie].[Année et Mois].[Mois].&[2017-05-01]} 
calculated member nbMonths as  myData.count
select
{
    nbMonths, beginOfYear
} on 0,
myData on 1
from [Cube]

ここに画像の説明を入力

...

ここに画像の説明を入力

上記の結果からわかるように、beginOfYear は正しく計算されているようですが、セット myData では使用されていません。したがって、5 ではなく 113 が返されます。

4

1 に答える 1