Sta*_*eas 5 ssas mdx max min powerbi
我将PowerBI Desktop / Service用作前端,将Analysis Services MultiDimension用作后端。我想创建一个复杂的计算所得成员,但该成员的某些部分存在问题。
例如,我需要使用filter元素切片器中使用的TIME维度的MIN / MAX DATE。
我已经尝试过一些简单计算的成员开始:
第一:
MAX
(
EXISTING
[Time].[DATE].Members,
[Time].MEMBER_KEY
)
Run Code Online (Sandbox Code Playgroud)
第二个:
MAX
(
NONEMPTY
[Time].[DATE].Members,
[Time].MEMBER_KEY
)
Run Code Online (Sandbox Code Playgroud)
第三个:
MAX
(
EXISTING
[Time].[YQM].[DATE].Members,
[Time].[YQM].MEMBER_KEY
)
Run Code Online (Sandbox Code Playgroud)
第四名:
MAX
(
NONEMPTY
[Time].[YQM].[DATE].Members,
[Time].[YQM].MEMBER_KEY
)
Run Code Online (Sandbox Code Playgroud)
我也尝试通过使用像这样的内部度量来尝试不同:
MAX
(
(
[Time].[DATE].Members,
[Measures].[Sales Amount]
),
[Time].[DATE].Member_Key
)
Run Code Online (Sandbox Code Playgroud)
所有这些都显示了TIME维度的最后一个DATE,而不是PowerBI的filter-slider滑块中选择的MAX。有任何想法吗?
奇怪的是,如果我将filter-element用作simple-selection-drop-down而不是range-slicer,则可以使用以下代码检索当前选择的日期:
MAX
(
EXISTING
[Time].[YQM].CURRENTMEMBER,
[Time].[YQM].MEMBER_KEY
)
Run Code Online (Sandbox Code Playgroud)
但是,当我切换到相同范围的代码时,返回零(0)!
另外,我已经在不同的表格模型中使用DAX并可以正常工作,但是对于多维模型来说似乎太难了
也许是由于范围问题?
正如您所提到的,问题不是来自 PowerBI,而是来自对 MultiDim 模型的查询。
您可以通过在 Excel 上浏览计算成员并按日期进行筛选来重现它。如果您只选择一个日期,成员会正确刷新并显示该日期,但如果您选择多个日期,则会显示“31”,因为“31”是所有成员的最大值。我尝试使用DYNAMIC SET纠正该行为:
CREATE DYNAMIC SET setDate AS
{
NONEMPTY([Time].[DATE].Members)
};
Run Code Online (Sandbox Code Playgroud)
然后,我用这个集合来计算我的度量:
CREATE MEMBER CURRENTCUBE.[Measures].[MAX_DATE]
AS MAX(
setDate,
CDate([Time].[DATE].Properties('Key0', Typed)
),
VISIBLE = 1;
Run Code Online (Sandbox Code Playgroud)
(请注意该CDate函数,如果您使用美国格式,我使用它将我的 MEMBER_KEY 转换为日期,因此 1/31/2020 > 9/9/2000,但根据您的型号,您可能不需要它。)
在 Excel 中,即使我选择多个日期,我的新度量也能正常工作。我是 PowerBI 的新手,但我创建了一份报告,看起来没问题。
我希望它有帮助!
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |