我有一个库存分析的立方体。
在多维数据集中有一个名为[Qta Finale]
的度量,它是项目的最后一个库存级别。
然后我有一个名为[Data]
的维度,其中有日历。
在维度[Data]
中,有一个名为[Anno Mese]
的层次结构为[Anno]
。
[Mese]
[Anno] is the year
[Mese] is the month
所以我做了一个计算
Tail(
NONEMPTY(
{EXISTING [Data].[Anno Mese].[Mese].MEMBERS} * [Measures].[Qta Finale]
) ,1).ITEM(0)
工作正常。我获得了当年和所有月份的最后一个非空库存水平。因此,日历中excel中的所有过滤器都可以正常工作。
现在我需要用上一年的库存水平创建一个新计算。
我试过但没有成功,有什么想法吗?
答案 0 :(得分:0)
如果您的月 - 年等级是标准的,您可以使用滞后来回溯12个月。
Tail(
NONEMPTY(
{EXISTING [Data].[Anno Mese].[Mese].MEMBERS} * [Measures].[Qta Finale]
) ,1).ITEM(0).lag(12)
答案 1 :(得分:0)
可能需要额外的物品吗?
Tail(
NONEMPTY(
{EXISTING [Data].[Anno Mese].[Mese].MEMBERS} * [Measures].[Qta Finale]
) ,1).ITEM(0).ITEM(0).lag(12)
这个版本有用吗?
Tail
(
EXISTING NONEMPTY([Data].[Anno Mese].[Mese].MEMBERS * [Measures].[Qta Finale])
).ITEM(0).ITEM(0).lag(12)
Edit1
你为什么要在NonEmpty中进行交叉连接?也许只使用该度量作为第二个参数:
Tail(
NONEMPTY(
{EXISTING [Data].[Anno Mese].[Mese].MEMBERS}, [Measures].[Qta Finale]
) ,1).ITEM(0).ITEM(0).lag(12)
Edit2
如果你仍然得到一个空的结果,没有任何错误,那么该集合中最后一个现有的非空成员实际上是空的。 您可以通过以下方式进行检查:
SELECT
{} ON 0,
[Data].[Anno Mese].[Mese].MEMBERS * [Measures].[Qta Finale] ON 1
FROM CubeName;
SELECT
{} ON 0,
NONEMPTY([Data].[Anno Mese].[Mese].MEMBERS * [Measures].[Qta Finale]) ON 1
FROM CubeName;
SELECT
{} ON 0,
{NONEMPTY([Data].[Anno Mese].[Mese].MEMBERS * [Measures].[Qta Finale]).ITEM(0).ITEM(0).lag(12)} ON 1
FROM CubeName;
然后尝试将*
更改为,