使用 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 中使用。因此,它返回 113 而不是 5。