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 が返されます。