MDX脚本 - 在同一轴上混合空和非空

我想问你的帮助,以了解MDX查询的主要逻辑。我想从多维数据集中查询不同的维度。但是:在某些情况下,我想隐藏NULL值,但在其他维度中仍然需要。在我的情况下,我想提供日期星期和日期在该时间段内的每一天。 (即使它没有数据)内容将是订单号,位置号和公司,当然还有KPI:OTD_customer。我多次尝试解决空值问题,但我是MDX的初学者。我试图用NON EMPTY关键字和非空函数,但仍然没有希望的结果。一个更复杂的事情是过滤日期的时间段:根据实际的日期过去15周。 (这部分工作正常)MDX脚本 - 在同一轴上混合空和非空

> SELECT NON EMPTY 

> { [OTD_customer_new] } ON COLUMNS, NON EMPTY

> {

> (

> (( strtoset("LASTPERIODS(15,([Date - Plan Delivery Date].[Calendar Week].&[" + left(ltrim("2017 KW 10"),4) +" KW " + right(ltrim("2017 KW 10"),2) + "])) ")

> , [Order Number].[Order Number].[Order Number].ALLMEMBERS

> , [Position Number].[Position Number].[Position Number].ALLMEMBERS

> ,[Date - Plan Delivery Date].[Day of the Week].ALLMEMBERS

> ,[Group Structure].[Group Structure].ALLMEMBERS

> ) )

> *

> ([Date - Plan Delivery Date].[Date].[All].FirstChild:

> tail

> (filter

> ([Date - Plan Delivery Date].[Date].[All].Children,

> [Date - Plan Delivery Date].[Date].CurrentMember.Name <= Format(Now(), "yyyyMMdd")

> ), 1

> ).item(0)

> ))

> }

> ON ROWS

> FROM [ProductionCube]

我应该在哪里使用过滤条件?查询多维数据集结果的最佳方法是什么?当它将在正常的关系数据库中,我会使用一个简单的连接来达到这个目的。但是在MDX中我没有看到在脚本中使用左连接和内连接的可能性。根据我的理解,孔轴可能会过滤空值。你有什么主意吗? (感谢您的阅读)可以找到当前结果示例here

回答:

该非空功能旨在过滤空轴(当您的输出计算时)。 NonEmpty函数进行集合的计算。所以,如果你运行:

Non Empty {Set1} * {Set2} 

你将只会得到非空的记录。 如果你运行:

NonEmpty({Set1} * {Set2}, [Measures].[NonEmptyMeasure]) 

你会得到相同的结果,但机械是一个有点不同。如果你想只过滤特定集合,你可以使用非空围绕这些集:

{Set1} * NonEmpty({Set2}, [Measures].[NonEmptyMeasure]) 

SET1不会被过滤。尽管如此,Set1的所有成员都将与Set2的所有非空成员进行交叉连接。最有可能的不是你想要的。 你有许多额外的属性加入你的日期。什么期望他们返回空记录?我会想你想返回所有成员,也就是说,SET1是设定日期和SET2公司是一家集:

NonEmpty({Set1} * {Set2}, [Measures].[NonEmptyMeasure]) + { {Set1} - NonEmpty({Set1}, [Measures].[NonEmptyMeasure])} * {Set2}.Item(0).Parent 

说明:

1. NonEmpty({Set1} * {Set2}, [Measures].[NonEmptyMeasure]) -- returns non-empty records 

2. {Set1} - NonEmpty({Set1}, [Measures].[NonEmptyMeasure]) -- returns empty dates

3. {Set2}.Item(0).Parent -- returns All member

结果将如下所示:

|=====================================| 

| 2016 week 51 | Company1 | 1 |

| 2016 week 51 | Company2 | 1 |

| 2016 week 51 | Company3 | 1 |

| 2016 week 52 | All companies | NULL |

=======================================

这是希望的结果吗?

以上是 MDX脚本 - 在同一轴上混合空和非空 的全部内容, 来源链接: utcz.com/qa/262829.html

回到顶部