簡體   English   中英

如何顯示度量為null(mdx)的層次結構成員

[英]How to display hierarchy member where measure is null (mdx)

我想在SSRS中顯示層次結構,其中包括具有零度量值的成員。 mdx查詢中的問題是,當我刪除NON EMPTY clouse時,由於時間,乘積和層次結構維度之間的交叉連接較大,因此出現了“ System.OutOfMemoryException”。 知道如何忍受嗎? 查詢如下:

SELECT 
NON EMPTY  { (
[Measures].[SOME MEASURE]
   )} ON COLUMNS,
   NON EMPTY { (
[Organization Structure].[Description].[Description].Allmembers
* [Organization Structure].[ID].[ID]
* [Organization Structure].[ParentID].[ParentID]
*[Products].[Name].[Name]
*[Time].[Hierarchy].[MothsAndDays]
)} 
DIMENSION
 PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME, PARENT_UNIQUE_NAME, 
 LEVEL_NUMBER ON ROWS 
 FROM [MyCube]

您可以使用NonEmpty(無間隙)功能來代替層次結構嗎? 因此,例如:

SELECT 
//NON EMPTY  
{ (
[Measures].[SOME MEASURE]
   )} ON COLUMNS,
//NON EMPTY 
{ (
[Organization Structure].[Description].[Description].Allmembers
* NONEMPTY([Organization Structure].[ID].[ID],[Measures].[SOME MEASURE])
* [Organization Structure].[ParentID].[ParentID]
* NONEMPTY([Products].[Name].[Name],[Measures].[SOME MEASURE])
* [Time].[Hierarchy].[MothsAndDays]
)} 
DIMENSION
 PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME, PARENT_UNIQUE_NAME, 
 LEVEL_NUMBER ON ROWS 
FROM [MyCube]

假設您在Reporting Services服務器(而不是Analysis Services服務器)上出現了內存問題,則可以在ROWS select部分的末尾使用HAVING子句代替其開頭的NON EMPTY來限制行:

SELECT 
NON EMPTY  { (
[Measures].[SOME MEASURE]
   )} ON COLUMNS,

[Organization Structure].[Description].[Description].Allmembers
* [Organization Structure].[ID].[ID]
* [Organization Structure].[ParentID].[ParentID]
*[Products].[Name].[Name]
*[Time].[Hierarchy].[MothsAndDays]

DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME, PARENT_UNIQUE_NAME, LEVEL_NUMBER 

HAVING <whatever the condition is to display a row>

ON ROWS 
 FROM [MyCube]

由於您沒有確切說明要確定要顯示的行的方式,因此我將其保留為上面的<whatever the condition is to display a row> 這種工作方式是Analysis Services首先為所有行層次結構的完整叉積建立結果集,然后評估從中刪除行的條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM