【问题标题】:Analysis Services - calculated member - count by dimension key rangeAnalysis Services - 计算成员 - 按维度键范围计数
【发布时间】:2017-07-05 13:53:17
【问题描述】:

您好,我正在为 MS SSAS 苦苦挣扎... 简化我的数据视图中有两个表。 T1 包含一个 PK 和一个日期。 T2 包含一个 PK、一个 T1 的 FK 和一些数字。

我从 T1 创建了一个具有两个属性的维度。 所以我可以创建一个多维数据集来按日期和 T1 的 ID 聚合 T2 的数据。 到目前为止一切顺利。

接下来我要做的是聚合部分数据。 例子: "显示 FK >=970 的 T2 记录的聚合数据"

所以我尝试编写一个计算度量,但失败了。我在网上搜索,但我发现到目前为止没有任何效果......

希望有人能帮忙提示一下。

【问题讨论】:

  • stackoverflow.com/questions/42167709/mdx-and-periodstodate/… 是否要过滤FK >=970 的记录或成员?
  • 我想聚合所有与 t1.id >=970 的 t1 记录相关的 t2 记录。我 sql 它会是这样的: SELECT SUM([SomeData]) FROM [T2] WHERE [T2].[FK] IN (SELECT [ID] FROM [T1] WHERE [ID] >= 970)
  • 除了在 Where 子句中添加 [ID] 列作为维度属性和过滤器之外,没有其他方法可以在 MDX 中执行此操作。否则,您应该添加一个新度量来过滤掉这些记录。

标签: sql sql-server ssas mdx analysis


【解决方案1】:

如果我理解正确,您的日期维度是 T1。

在您的维度中,您应该有一个维度键设置,我假设您在 PK 列中进行了设置。在属性中,您可以为该属性定义 3 件事。 键列 名称列 值列

确保您的 KeyColumns 是 PK 列。并且应该是 OrderBy 属性,您应该确保设置为“Key”

之后,如果您的 PK 是连续的(它们确实应该!),您可以像这样进行 MDX 查询:

SELECT
{ [Measures].[YOURMEASURE] } ON COLUMNS,
{ [T1].&[970] : NULL } ON ROWS
FROM [MyCube]

编辑: 当然。添加到多维数据集中的计算中。

CREATE MEMBER CURRENTCUBE.[Measures].[MyOver970Measure]
AS
AGGREGATE({ [T1].&[970] : NULL },[Measures].[YOURMEASURE])
,VISIBLE=1;

【讨论】:

  • 是否可以创建一个衡量标准?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多