[英]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.