结果集MDX中不允许任何空值

结果集MDX中不允许任何空值,mdx,Mdx,我想排除MDX查询中有空值的任何行。听起来很简单: SELECT NON EMPTY{ .... } ON 0 etc... 但是,我的一列有值,即使其他列只包含空值。 例如: Area | ComputerSales | Areadirector WA (Null) Steve NY 21312 Mary 如何删除第一行,其中有一个(null)值?您可以使用例如FILTER和ISEMPTY函数 SELECT

我想排除MDX查询中有空值的任何行。听起来很简单:

SELECT 
 NON EMPTY{
 ....
 }
 ON 0
etc...
但是,我的一列有值,即使其他列只包含空值。 例如:

Area | ComputerSales | Areadirector
WA     (Null)             Steve
NY     21312              Mary

如何删除第一行,其中有一个(null)值?

您可以使用例如FILTER和ISEMPTY函数

SELECT
      [Measures].[Fac Count] on 0,
FILTER(
       [Time].[Date Key].children,
       NOT ISEMPTY([Measures].[Fac Count])
       )
       on 1
FROM
   [Test]

这个简单的查询只返回Fac Count measure具有非空值的日期键。

您可以使用
HAVING

SELECT 
  {
    [Measures].[Computer Sales]
   ,[Measures].[Areadirector]
  } ON 0
 ,[AreaDimension].[Area].[Area] HAVING 
  (NOT 
    IsEmpty([Measures].[Computer Sales])) ON 1
FROM [YourCube];
或者先在带有子句的
中设置:

WITH 
  SET [S] AS 
    NonEmpty
    (
      [AreaDimension].[Area].[Area]
     ,[Measures].[Computer Sales]
    ) 
SELECT 
  {
    [Measures].[Computer Sales]
   ,[Measures].[Areadirector]
  } ON 0
 ,[S] ON 1
FROM [YourCube];
第二种方法可能更有效。

Filter()可能比@whytheq的NonEmpty()答案慢得多。