ssas - 年初至今的 MDX 计算量度
问题描述
我有一个 OLAP 多维立方体,它最简单的形式包含:
- 具有 NetAmount 度量的事实表
- 时间维度,包含年、月、日、月中日、年中日等字段
要求是用户希望能够比较从每年年初到特定日期的总 NetAmount。可以通过在“日”和“月”字段上设置过滤器来选择日期。例如,用户希望查看以下总价值:
- 2019 年 1 月 1 日至 2019 年 1 月 20 日
- 2018 年 1 月 1 日至 2018 年 1 月 20 日
- 2017 年 1 月 1 日至 2017 年 1 月 20 日
- ETC
解决此要求的最佳方法是什么?
解决方案
您可以使用 YTD 函数创建计算成员,如下所示:
CREATE MEMBER CURRENTCUBE.[Measures].[NetAmountYTD]
as
Aggregate(YTD ([Time].[Time].CurrentMember), [Measures].[NetAmount])
您还可以创建实用程序维度,例如 TimeUtility,并添加 YTD 成员,并像这样定义它:
Scope([TimeUtility].[YTD]);
this = Aggregate(YTD ([Time].[Time].CurrentMember), [TimeUtility].[DefaultMember]);
End Scope;
这样,无论您针对 [TimeUtility].[YTD] 进行何种度量,它都会为您提供该度量的年初至今,而不仅仅是 NetAmount,因此它将是通用解决方案。
推荐阅读
- ocl - Eclipse OCL google.inject 创建异常
- java - JBoss SSO 允许跨安全域登录
- swift - (Swift) 拖放 NSOutlineview 时出现奇怪的反馈
- r - ggplot2:通过循环输出多个图
- javascript - 在输入中设置值时无法将属性“值”设置为 null
- sass - 如何将带有线性渐变的背景图像 CSS 转换为 SASS?
- python - 检查语音频道中的人是否打开了视频(discord.py)
- excel - 尝试计算 Col1 匹配的 Col2 值
- android - 如何使用 androidpublisher 为一个 APK 上传两个反混淆文件?
- python - 使用 numpy.where 创建掩码