Excel 多维SSA的DAX查询工作不正确
当Excel连接到SSAS时,Excel会对多维数据集进行mdx查询,并且工作正常 当PowerBI连接到SSAS(实时连接)时,PowerBI会对多维数据集进行DAX查询,但其工作不正确,因为“CurrenteMember”不起作用 我在SSAS中有一个衡量标准:Excel 多维SSA的DAX查询工作不正确,excel,powerbi,ssas,mdx,dax,Excel,Powerbi,Ssas,Mdx,Dax,当Excel连接到SSAS时,Excel会对多维数据集进行mdx查询,并且工作正常 当PowerBI连接到SSAS(实时连接)时,PowerBI会对多维数据集进行DAX查询,但其工作不正确,因为“CurrenteMember”不起作用 我在SSAS中有一个衡量标准: CREATE MEMBER CURRENTCUBE.[Measures].[Cumulative amount] AS sum( YTD([Time].[Year - Quarter - Month].Curren
CREATE MEMBER CURRENTCUBE.[Measures].[Cumulative amount]
AS sum(
YTD([Time].[Year - Quarter - Month].CurrentMember)
, [Measures].[Fact]
)
当我从Excel连接到OLAP并在Pivot表中选择八月和九月时,Excel对ssas进行mdx正确的查询,我看到了正确的值
在PowerBI中,我有层次过滤器(年-季度-月)和带有列:[月],[累计金额]的网格。
当我从PowerBI连接到OLAP并在层次结构中选择八月和九月时,PowerBI进行DAX查询:
EVALUATE
....
KEEPFILTERS(
FILTER(
KEEPFILTERS(
SUMMARIZE(
VALUES('Time'),
'Time'[Year.Key0],
'Time'[Year],
'Time'[Quarter.Key0],
'Time'[Quarter],
'Time'[Month.Key0],
'Time'[Month]
)
),
AND(
'Time'[Year.Key0] IN {DATE(2019, 1, 1)},
('Time'[Year], 'Time'[Quarter], 'Time'[Month]) IN {("y.2019", "3q 2019", "August 2019"),
("y.2019", "3q 2019", "September 2019")}
)
)
),
....
在这种情况下,它不起作用:表中的值为空,因此表为空。
如果我在层次结构中只选择一个项目(一个月或一个季度),效果很好
PowerBI是否无法进行mdx查询?必须采取哪些措施才能正确执行对多维SSA的DAX请求?感谢您提出的问题 您应该知道问题不在Power BI生成的查询中 你说: 当我从Excel连接到OLAP并在Pivot表中选择八月和九月时,Excel对ssas进行mdx正确的查询,我看到了正确的值 您的最终用户会感到困惑,结果显示今年到8月还是9月。这就是问题所在 我们需要知道,YTD()函数只接受一个指定的成员,并且只接受一个。(九月或八月)这是事物的逻辑方式
Ytd( [ Member_Expression ] )
返回一组与给定成员级别相同的同级成员,从第一个同级成员开始,以给定成员结束,受时间维度中的年份级别约束
但有一种方法可以解决这个问题,我不推荐
假设我们想显示最近一个月的YTD结果,如果用户选择了多个月(9月、8月、1月),我们会选择9月来计算outed,因为它是最近的一个月
这可以通过使用两个函数来完成:Order和Item
CREATE MEMBER CURRENTCUBE.[Measures].[Cumulative amount]
AS sum(
YTD(
ORDER(
[Time].[Year - Quarter - Month],[Time].[Year - Quarter -Month].MEMBER_KEY,BDESC
).ITEM(0)
) ,
[Measures].[Fact]
)
如果在VisualStudio中打开时间维度设计器并单击“年-季度-月”层次结构的“月”级别,然后告诉我生成该级别的属性的名称。层次结构上是否有一个黄色的小警告标志,表明这不是自然现象?