ssas - 根据日期维度值过滤的 TopCount
问题描述
我正在尝试从贴现率为 -20 的任何衡量标准以及特定日期获得前 10 个国家/地区的价值。我创建了一个简单的动态集,定义为:
CREATE DYNAMIC SET CURRENTCUBE.[Top10CountryBy20Disc]
AS
TopCount
( [Customer].[Country].members,
10, [Discount].[Discount].&[-20%])
;
这为我提供了按总体度量值求和的前 10 名客户,但我需要过滤到特定日期。总体前 10 名与特定日期的前 10 名不同,因此我需要包含一些日期上下文。目前,我为每个国家/地区返回的数字都是正确的,但国家列表(前 10 名)是不正确的。
我在许多其他报告中使用下面列出的集合 [最新],这很好用,但是在使用上述集合时很难将其结合起来。
CREATE DYNAMIC SET CURRENTCUBE.[Latest]
AS FILTER(
[Date].[Date Key].[Date Key].members, IsDate([Date].[Date Key].currentmember.membervalue)
AND (
DateDiff("d", [Date].[Date Key].currentmember.membervalue, IIF(Weekday(Now()) = 2, 3, 1)
);
从逻辑上讲,我正在尝试按照以下方式做一些事情,这是无效的语法:
TopCount
( [Customer].[Country].members,
10, ([Discount].[Discount].&[-20%], [Latest]))
;
将不胜感激对此的一些建议/方向。
解决方案
这种方法解决了我的问题:
GENERATE ( [Latest],
{TopCount
( descendants([Customer].[Country],,AFTER),
10,
VBA!Abs(([Discount].[Discount].&[-20%], ([Measures].[MeasureName],[Date].[Date Key].currentmember)))
)
}
);
推荐阅读
- android - Android中PagedListView从内容左侧到右侧的滚动条
- ruby-on-rails - 应用程序找不到路由
- python - 带有 Python 的 Selenium Webscraper 不允许我单击元素
- java - 受限生产 FB 应用程序的问题,但重复的 FB 应用程序确实有效
- javascript - 有没有办法在运行时获取扩展的设置(在 package.json 中定义)?
- openlayers - 在 OpenLayers 中使用纬度/经度和半径绘制圆
- installation - 如何根据系统颜色更改 NSIS 安装程序背景颜色
- c# - 将位图保存到内存流时,我可以将位图转换为 jpeg 吗?
- r - R Datatable在运行Shiny App后基于另一列和隐藏列设置一列的样式不起作用
- python - Python:Pandas 在读取表格文本文件时不分隔列