首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MDX结果计数

MDX结果计数
EN

Stack Overflow用户
提问于 2020-08-13 16:39:50
回答 1查看 41关注 0票数 0

我是MDX查询的初学者。谁能告诉我如何获取MDX查询的结果记录数?

查询如下:

select {[Measures].[Employee Department History Count],[Measures].[Rate]} on columns, Non Empty{{Filter([Shift].[Shift ID].[Shift ID].Members, ([Shift].[Shift ID].CurrentMember.name <> "1"))}*{[Employee].[Business Entity ID].[Business Entity ID].Members}} on rows from [Adventure Works2012].

我已经尝试了各种方法,但我还没有真正得到解决方案。

EN

回答 1

Stack Overflow用户

发布于 2021-02-20 00:44:15

当您谈到“记录计数”时,我假设您指的是行数,因为MDX不知道记录的概念,但是MDX查询显示的结果是由轴上的元组构建的空间。

我认为有两种方法可以获得行数:

  • 只需在调用MDX查询的工具中计算上述查询返回的行数。
  • 如果您想计算MDX,那么让我们说明您想要的内容:

您想知道[Shift ID]s和[Business Entity ID]s的非空组合的集合的成员数量,其中Shift ID不是"1“,并且[Employee Department History Count][Rate]中至少有一个度量不为null。为了说明不同之处:让我们将第一个度量值不为空的元组称为"SET1",将第二个度量值不为空的元组称为"SET2“。然后,你想知道这些集合中的一个(或两个)中包含的元组的计数。

为此,我们定义了这两个集合,然后定义了一个在其定义中包含此计算的计算成员(在我们的示例中是一个新度量),然后在select子句中使用此计算成员来显示它:

代码语言:javascript
复制
WITH
SET SET1 AS
    NonEmpty({{Filter([Shift].[Shift ID].[Shift ID].Members, 
                       ([Shift].[Shift ID].CurrentMember.name <> "1"))}
              * {[Employee].[Business Entity ID].[Business Entity ID].Members}},
              {[Measures].[Employee Department History Count])
SET SET2 AS
    NonEmpty({{Filter([Shift].[Shift ID].[Shift ID].Members, 
                       ([Shift].[Shift ID].CurrentMember.name <> "1"))}
              * {[Employee].[Business Entity ID].[Business Entity ID].Members}},
              {[Measures].[Rate])
MEMBER [Measures].[MyCalculation] AS
       COUNT(SET1 + SET 2)
SELECT [Measures].[MyCalculation] ON COLUMNS
FROM [Adventure Works2012]

请注意:

  • 集合SET1SET2并不是绝对必要的,您也可以将整个计算放在MyCalculation度量的一个冗长而复杂的定义中,但将其分开会更容易阅读。但是,新成员的定义是必要的,因为在MDX中,您只能将成员放在轴上(行、列等)。这些成员可以已经在多维数据集中定义,也可以在查询的WITH子句中定义。在MDX中没有将表达式/计算放在轴上的事情,只有成员。+
  • sets是一个删除重复项的联合,因此这个操作给出了至少一个度量值为非空值的元组。或者,您可以使用与我在集合的定义中使用的+.
  • The Nonempty()相同的Union functionNonEmpty function,它与您可以在轴上使用的NON EMPTY关键字略有不同。我们在set definitions.
  • I中使用其中一个度量作为此函数的第二个参数,目前没有可用的SSAS安装来测试我的语句,因此在上面的语句中可能有一个小错误或拼写错误,但这个想法应该是可行的。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63391301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档