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

时间:2015-12-01 15:33:21

标签: mdx

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

SELECT 
 NON EMPTY{
 ....
 }
 ON 0
etc...

但是,我的一个列具有值,即使其他列只包含空值。 例如:

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

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

2 个答案:

答案 0 :(得分:2)

您可以使用HAVING

SELECT 
  {
    [Measures].[Computer Sales]
   ,[Measures].[Areadirector]
  } ON 0
 ,[AreaDimension].[Area].[Area] HAVING 
  (NOT 
    IsEmpty([Measures].[Computer Sales])) ON 1
FROM [YourCube];

首先在WITH子句中创建集合:

WITH 
  SET [S] AS 
    NonEmpty
    (
      [AreaDimension].[Area].[Area]
     ,[Measures].[Computer Sales]
    ) 
SELECT 
  {
    [Measures].[Computer Sales]
   ,[Measures].[Areadirector]
  } ON 0
 ,[S] ON 1
FROM [YourCube];

第二种方法可能更有效。

答案 1 :(得分:1)

您可以使用例如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具有非空值的日期键。