我是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].
我已经尝试了各种方法,但我还没有真正得到解决方案。
发布于 2021-02-20 00:44:15
当您谈到“记录计数”时,我假设您指的是行数,因为MDX不知道记录的概念,但是MDX查询显示的结果是由轴上的元组构建的空间。
我认为有两种方法可以获得行数:
您想知道[Shift ID]s和[Business Entity ID]s的非空组合的集合的成员数量,其中Shift ID不是"1“,并且[Employee Department History Count]和[Rate]中至少有一个度量不为null。为了说明不同之处:让我们将第一个度量值不为空的元组称为"SET1",将第二个度量值不为空的元组称为"SET2“。然后,你想知道这些集合中的一个(或两个)中包含的元组的计数。
为此,我们定义了这两个集合,然后定义了一个在其定义中包含此计算的计算成员(在我们的示例中是一个新度量),然后在select子句中使用此计算成员来显示它:
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]请注意:
SET1和SET2并不是绝对必要的,您也可以将整个计算放在MyCalculation度量的一个冗长而复杂的定义中,但将其分开会更容易阅读。但是,新成员的定义是必要的,因为在MDX中,您只能将成员放在轴上(行、列等)。这些成员可以已经在多维数据集中定义,也可以在查询的WITH子句中定义。在MDX中没有将表达式/计算放在轴上的事情,只有成员。+ +.Nonempty()相同的Union function是NonEmpty function,它与您可以在轴上使用的NON EMPTY关键字略有不同。我们在set definitions.https://stackoverflow.com/questions/63391301
复制相似问题