我在 Oracle 中有 2 个表,在 SSAS 表格模型中使用:
我的事实表 暗淡日期
他们之间的关系是1对多 MyFactTable[文件提取日期] 到 DimDate[日期]
RAF ID 的简单计数是 _count_Client_Distinct = COUNT(MyFactTable[客户端 ID])
现在我想根据选择计算 RAF ID 的计数 以及过去 3 个季度
例如:
如果我选择 FileExtractDate= 12/10/2021 图表条的视觉效果将为我提供自 2021 年 12 月 10 日起属于第四季度的第四季度客户 ID 的计数 并显示其他 3 个季度(Q1、Q2、Q3)的 Client ID 数量
如果我选择 FileExtractDate= 09/02/2021 图表条的视觉效果将为我提供自 2021 年 9 月 10 日起属于第一季度的第一季度客户 ID 的计数 并显示 2020 年其他 3 个季度(第 2 季度、第 3 季度、第 4 季度)的客户 ID 计数
如果不进行任何选择,它将采用最大日期并显示最大日期的季度和最后 3 个季度的计数
我尝试了以下方法:
Prev 3 Qtrs =
VAR _End = STARTOFQUARTER( 'Date'[Date] ) - 1
VAR _Start =
CALCULATE(
MIN( 'Date'[Date] ),
DATEADD(
DATEADD(
'Date'[Date],
-1,
YEAR
),
1,
QUARTER
)
)
VAR _Result =
CALCULATE(
[Count],
'Date'[Date] >= _Start
&& 'Date'[Date] <= _End
)
RETURN
_Result
但是当我选择一个日期时,它仅显示该日期所属季度的结果。
使用切片器或过滤器时,无法显示切片/过滤范围之外的行。这意味着您需要一张单独的表格用于视觉效果(图表 X 轴)和日期切片器。
这是我的建议 - 创建一个重复的日期表,也许将其称为“日期过滤器”。
Date Filter = 'Date'
这个新表不需要与任何其他表有任何关系,因此请确保不存在任何关系。
那么你的衡量标准是:
Prev 3 Qtr =
CALCULATE(
COUNTROWS('MyFactTable'),
KEEPFILTERS(
DATESINPERIOD('Date'[Date], ENDOFQUARTER('Date Filter'[Date]), -4, QUARTER)
)
)
澄清一下:
'Date Filter'
表'Date'
表