首页 > 解决方案 > SSAS 日期存储为文本

问题描述

我有一个预测度量表,其中 MMM-YY 日期存储为文本;

Period Forecast
-------------------
Jan-20 200
Feb-20 300

我的模型中还有一些其他表格具有类似的日期格式,即。(1/2020)或 2020_1。因此,我创建了一个将时间段映射到实际日期时间的日期维度,并将其链接到事实表;

Period (Month/Year) Year_Month MonthEnd
---------------------------------------------------
Jan-20 (1/2020) 2020_1 31/01/2020
Feb-20 (2/2020) 2020_2 28/02/2020

这给我带来了两个问题;

  1. 如果我按时段划分预测,我会得到正确的答案,但如果我按日期时间字段“MonthEnd”划分,SSAS 无法跨属性分配成本,我每个月都会得到总计(所以 1 月和 2 月都是 500在这个例子中)。为什么?

  2. 我无法将时间作为参考维度连接到日期维度,因此我无法使用任何时间智能功能。

我可以将 ETL 上的时间段 ID 换成日期时间,以标准化模型中的日期字段,但我想知道是否有一种标准的方法来解决这个问题?

立方体

https://imgur.com/gallery/onxtvhq

标签: sqldatessas

解决方案


在 Analysis Services 多维模型中,您需要标准化一种格式来表示一个时期,并让所有度量值组都使用它。我建议您更改实际值度量组的 SQL 查询,以返回连接到日期表中的期间列的值。

了解其工作原理意味着了解属性关系和IgnoreUnrelatedDimensions设置。如果设置为 true,则按“不相关”属性(低于粒度或不相关或不相关维度的属性)进行切片只会导致测量重复。如果设置为 false,那么它将变为 null。

我不清楚你为什么需要时间作为参考维度。它似乎还包含一个日期层次结构。通常日期是几天、几周、几个月和几年。通常时间是小时分钟和秒。出于处理性能的原因,我会避免参考尺寸。他们的麻烦多于他们的价值。将时间维度键添加到事实表。


推荐阅读