按日期维度值过滤的 TopCount
TopCount filtered on a date dimension value
我正在尝试从贴现率为 -20 的任何度量值中获取特定日期前 10 个按价值计算的国家/地区。我创建了一个简单的动态集,定义为:
CREATE DYNAMIC SET CURRENTCUBE.[Top10CountryBy20Disc]
AS
TopCount
( [Customer].[Country].members,
10, [Discount].[Discount].&[-20%])
;
这为我提供了按总体度量值求和的前 10 个客户,但我需要筛选到特定日期。总体前 10 名不会与特定日期的前 10 名相同,因此我需要包含一些日期上下文。目前我得到的每个国家的数字都是正确的,但国家列表(前 10 个列表)不正确。
我在很多其他报告中使用下面列出的集合 [Latest],这工作得很好,但是在使用上面的集合时我很难将它结合起来。
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]))
;
suggestions/direction 对此表示感谢。
这种方法解决了我的问题:
GENERATE ( [Latest],
{TopCount
( descendants([Customer].[Country],,AFTER),
10,
VBA!Abs(([Discount].[Discount].&[-20%], ([Measures].[MeasureName],[Date].[Date Key].currentmember)))
)
}
);
我正在尝试从贴现率为 -20 的任何度量值中获取特定日期前 10 个按价值计算的国家/地区。我创建了一个简单的动态集,定义为:
CREATE DYNAMIC SET CURRENTCUBE.[Top10CountryBy20Disc]
AS
TopCount
( [Customer].[Country].members,
10, [Discount].[Discount].&[-20%])
;
这为我提供了按总体度量值求和的前 10 个客户,但我需要筛选到特定日期。总体前 10 名不会与特定日期的前 10 名相同,因此我需要包含一些日期上下文。目前我得到的每个国家的数字都是正确的,但国家列表(前 10 个列表)不正确。
我在很多其他报告中使用下面列出的集合 [Latest],这工作得很好,但是在使用上面的集合时我很难将它结合起来。
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]))
;
suggestions/direction 对此表示感谢。
这种方法解决了我的问题:
GENERATE ( [Latest],
{TopCount
( descendants([Customer].[Country],,AFTER),
10,
VBA!Abs(([Discount].[Discount].&[-20%], ([Measures].[MeasureName],[Date].[Date Key].currentmember)))
)
}
);