【问题标题】:Date table in SSAS Tabular model not workingSSAS表格模型中的日期表不起作用
【发布时间】:2021-06-08 06:40:09
【问题描述】:

我构建了一个 SSAS 表格模型立方体并使用 calendarauto() 创建了一个日期表。我已将其标记为日期表,并使用日期列创建了与事实表的关系,并且两个列都具有 Datetime 数据类型。 当我使用 excel 分析数据时,日期过滤器无法正常工作。例如,当我过滤 2021 年时,它也会为我提供 2019 年的行值,但如果我使用事实表中的日期列,我会得到正确的结果。 当我使用 Power BI 分析表格多维数据集时,它工作正常。 您能否建议我们的日期表到底出了什么问题?

当我将事实表日期列和日期表日期列放在 Excel 上时,它看起来像下面的屏幕截图。

【问题讨论】:

  • 这可能是日期格式问题,您正在将日期时间列连接到日期列。按照数据库和维度建模最佳实践的建议使用或创建键列,因此 dd/mm/yyyy 将用于 01/02/2021 20210201,使用这些键加入

标签: powerbi-desktop ssas-tabular ssas-2012


【解决方案1】:

首先,我认为使用 CALENDARAUTO 是一个糟糕的想法,因为它会从您的模型中搜索所有日期列(如果您有一个出生日期为 1912-02-02 的客户,那么您将创建一个大表从那个日期开始)。

CALENDARAUTO 忽略计算表和计算列 搜索日期列。仅将导入的列分析为 搜索日期列。

在内部,CALENDARAUTO 调用 CALENDAR 提供的日期范围 包括数据引用的年份范围内的所有天数 模型,根据以下规则:

模型中不在计算列中的最早日期或 计算表作为MinDate。模型中的最新日期 不在计算列或计算表中的被视为 最大日期。返回的日期范围是开始日期之间的日期 与 MinDate 关联的会计年度和会计年度结束 与 MaxDate 相关联。

更好的办法是在您拥有更多控制权的地方使用 CALENDAR

CALENDAR (
    DATE ( 2005, 1, 1 ),
    DATE ( 2015, 12, 31 )
)

进入主题。您确定在 THIS 列(在您的事实表中)建立关系吗?还要检查交叉过滤行为-> OnDirection/BothDirection;显示您的关系详细信息。

【讨论】:

  • 我在日期表和事实表之间有关系,并且我在放出事实表日期列和日期表日期列时尝试了过滤器类型为OneDirection/BothDirection,看起来像上面帖子的截图。例如,2021-01-01 连接到 2019-01-01,2019-01-02-----2021-12-31 然后 2019-01-02 连接到 2019-01-01 到 2021- 12 31 以此类推。它的行为就像两个表之间没有关系。但是我的关系太多了,但是当我使用 Power BI 实时连接到多维数据集时,它可以正常工作。可能是什么问题?
  • 您是否尝试添加度量?如果您不添加任何度量,默认表格引擎会计算交叉连接(这没关系)。
  • 什么样的措施?我的事实表中有使用时间智能功能的度量,所以我需要使用日期表。我应该创建什么样的度量?
  • 只需添加任何度量,行数 - 随便
  • 您应该始终在度量上下文中分析您在 excel 中的数据。仅拉取属性将始终生成交叉连接。例如,如果您有一个表 Product 和 ProductCategory,并且您从 Product 中获取 ProductName,从 ProductCategory 中获取 ProductCategoryName,那么您将获得所有组合(即使您没有它)。使用度量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多