我是MDX的新手,无法在Google上找到它。
我正在尝试获取一段时间内一组一致记录的平均价格(不包括该期间添加或删除的任何记录)。
我尝试了几种方法,但是一直碰壁,这是我的最新尝试,导致“检测到#Error无限递归。依存关系的循环是:平均每月价格(同一商店)->平均每月价格(相同商店)。
WITH
// Period Data
MEMber [Date].[Date Id].PeriodCount AS
COUNT([Date].[Period].&[2018-01-01T00:00:00] : [Date].[Period].&[2018-12-01T00:00:00])
MEMber [Date].[Date Id].NonEmptyPeriodCount AS
COUNT(
NonEmpty(
[Date].[Period].&[2018-01-01T00:00:00] : [Date].[Period].&[2018-12-01T00:00:00],[Measures].[Monthly Price]
)
)
// Calculations
MEMber Measures.[Avg Monthly Price] AS [Measures].[Monthly Price] / [Measures].[Fact Monthly Price History Count]
MEMber Measures.[Avg Monthly Price (Same Store)] AS
AGGREGATE(
FILTER(
[Product].[Product Id].MEMberS,[Date].[Date Id].NonEmptyPeriodCount = [Date].[Date Id].PeriodCount
),[Measures].[Monthly Price]
)
SELECT
NON EMPTY {
[Measures].[Avg Monthly Price],[Measures].[Avg Monthly Price (Same Store)]
} ON COLUMNS,NON EMPTY (
[Date].[Period].Children
) ON ROWS
FROM
MyCube
WHERE
[Date].[Year].&[2018]
我觉得这应该比我做起来容易得多……任何帮助将不胜感激。
编辑:
我要简单解决的问题是获取每个日期的平均值,不包括在整个报告期间添加或删除的任何记录。
例如,给定以下设置:
Record | 1/1/2019 | 2/1/2019 | 3/1/2019 | 4/1/2019 | 5/1/2019
1 | 9 | 10 | 11 | 12 | 13
2 | | | 22 | 23 | 24
3 | 10 | 11 | 12 | 13 | 14
4 | 20 | 21 | 22 | |
5 | 11 | 12 | 13 | 14 | 15
我想排除记录2和4,因为它们在整个集合中都不存在,因此平均超时将受到添加或删除记录的影响。
对于以上设置,我想返回:
Period | Avg.
1/1/2019 | 10
2/1/2019 | 11
3/1/2019 | 12
4/1/2019 | 13
5/1/2019 | 14