Mdx Can';t过滤掉1.#INF值

Mdx Can';t过滤掉1.#INF值,mdx,Mdx,当我运行上述查询时,AvgRevenuePerUnit列显示1.#INF。要将1.#INF替换为0,我使用了下面给出的查询,但结果相同。我在下面给出的查询中使用WITH MEMBER SELECT NON EMPTY {{[Measures].[Net Promoter Score],[Measures].[AvgRevenuePerUnit]}} ON COLUMNS , NON EMPTY {{Hierarchize(DrilldownLevel(DrilldownLevel(Drilldo

当我运行上述查询时,AvgRevenuePerUnit列显示1.#INF。要将1.#INF替换为0,我使用了下面给出的查询,但结果相同。我在下面给出的查询中使用WITH MEMBER

SELECT NON EMPTY {{[Measures].[Net Promoter Score],[Measures].[AvgRevenuePerUnit]}} ON COLUMNS ,
NON EMPTY {{Hierarchize(DrilldownLevel(DrilldownLevel(DrilldownLevel([Employees].[Boss].[ALL]))))}} 
ON ROWS
FROM (SELECT ({[Employees].[Boss].&[14404]}) ON COLUMNS
FROM [Enterprise]
WHERE FILTER([Employees].[EID].[EID],[Measures].[Avg Revenue Per Unit] > 700)) 
WHERE ({[Employees].[Active Status].&[False]},{[Roles].[Roster Role].&[486]},{[Roles].[Enterprise Role].&[2]},
{[Locations].[Location].&[6]},{[Areas].[Area].&[3]},{[Markets].[Market].&[1]},{[Regions].[Region].&[2]},
{[Dates].[Date].&[20130218]:[Dates].[Date].&[20130319]})
我有一个由用户提供的多维数据集,并从该多维数据集查询数据。在我看来,多维数据集中的实际值不是1。#INF这就是为什么它不替换为0。但如果它不是1,该值是多少。 任何解决方案?

1。#INF
-1。#INF
是Analysis Services显示加减无穷大的方式,从技术上/数学上讲,它是将某物除以零的结果

避免这种情况的最佳方法是在度量的定义中,这可能在多维数据集的计算脚本中。你可能有类似的东西

WITH MEMBER [Measures].[AvgRevenuePerUnit] AS (IIF([Measures].[Avg Revenue Per Unit] = '1.#INF', 0, [Measures].[Avg Revenue Per Unit])), Format_String = '0.#0'
SELECT NON EMPTY {{[Measures].[Net Promoter Score],[Measures].[AvgRevenuePerUnit]}} ON COLUMNS ,
NON EMPTY {{Hierarchize(DrilldownLevel(DrilldownLevel(DrilldownLevel([Employees].[Boss].[ALL]))))}} 
ON ROWS
FROM (SELECT ({[Employees].[Boss].&[14404]})  ON COLUMNS
FROM [Enterprise] WHERE FILTER([Employees].[EID].[EID],[Measures].[Avg Revenue Per Unit] > 700)) 
WHERE ({[Employees].[Active Status].&[False]},{[Roles].[Roster Role].&[486]},{[Roles].[Enterprise Role].&[2]},
{[Locations].[Location].&[6]},{[Areas].[Area].&[3]},{[Markets].[Market].&[1]},{[Regions].[Region].&[2]},
{[Dates].[Date].&[20130218]:[Dates].[Date].&[20130319]})
替换为

CREATE MEMBER CurrentCube.[Measure].[AvgRevenuePerUnit] AS A / B
      , VISIBLE = 1;
如果您和所有其他用户真的必须坚持多维数据集中的定义,并且必须在查询中依赖with子句,那么我认为您的代码可以像

CREATE MEMBER CurrentCube.[Measure].[AvgRevenuePerUnit] AS Divide(A, B)
      , VISIBLE = 1;
您使用
'1.#INF'
的方法不起作用,因为这是一个字符串,无限数是数字,而不是Analysis Services的字符串。

1.#INF
-1.#INF
是Analysis Services显示正/负无穷大的方式,从技术上/数学上讲,它是将某个值除以零的结果

避免这种情况的最佳方法是在度量的定义中,这可能在多维数据集的计算脚本中。你可能有类似的东西

WITH MEMBER [Measures].[AvgRevenuePerUnit] AS (IIF([Measures].[Avg Revenue Per Unit] = '1.#INF', 0, [Measures].[Avg Revenue Per Unit])), Format_String = '0.#0'
SELECT NON EMPTY {{[Measures].[Net Promoter Score],[Measures].[AvgRevenuePerUnit]}} ON COLUMNS ,
NON EMPTY {{Hierarchize(DrilldownLevel(DrilldownLevel(DrilldownLevel([Employees].[Boss].[ALL]))))}} 
ON ROWS
FROM (SELECT ({[Employees].[Boss].&[14404]})  ON COLUMNS
FROM [Enterprise] WHERE FILTER([Employees].[EID].[EID],[Measures].[Avg Revenue Per Unit] > 700)) 
WHERE ({[Employees].[Active Status].&[False]},{[Roles].[Roster Role].&[486]},{[Roles].[Enterprise Role].&[2]},
{[Locations].[Location].&[6]},{[Areas].[Area].&[3]},{[Markets].[Market].&[1]},{[Regions].[Region].&[2]},
{[Dates].[Date].&[20130218]:[Dates].[Date].&[20130319]})
替换为

CREATE MEMBER CurrentCube.[Measure].[AvgRevenuePerUnit] AS A / B
      , VISIBLE = 1;
如果您和所有其他用户真的必须坚持多维数据集中的定义,并且必须在查询中依赖with子句,那么我认为您的代码可以像

CREATE MEMBER CurrentCube.[Measure].[AvgRevenuePerUnit] AS Divide(A, B)
      , VISIBLE = 1;

您使用
'1.#INF'
的方法不起作用,因为这是一个字符串,无穷多的数字是数字,而不是Analysis Services的字符串。

我还需要一件事。我想从上面给出的查询中筛选出1.#INF值。我该怎么做?@user2815197要隐藏无限值,只需使用NULL而不是0来替换无限值(我的答案的
WITH
子句中
IIF
的三个参数中的第二个)。然后,行的
非空
将导致这些行消失。@user2815197是否介意将答案标记为已接受的答案,以便其他人可以看到问题已被回答?FrankPI,行不会消失,但会显示AvgRevenuePerUnit列。现在只有[Net Promotor Score]列显示。我必须过滤掉所有非AvgRevenuePerUnit列的行。@user2815197您有非空的行吗?只有到那时,只有
NULL
值的行才会消失。我想从上面给出的查询中筛选出1.#INF值。我该怎么做?@user2815197要隐藏无限值,只需使用NULL而不是0来替换无限值(我的答案的
WITH
子句中
IIF
的三个参数中的第二个)。然后,行的
非空
将导致这些行消失。@user2815197是否介意将答案标记为已接受的答案,以便其他人可以看到问题已被回答?FrankPI,行不会消失,但会显示AvgRevenuePerUnit列。现在只有[Net Promotor Score]列显示。我必须过滤掉所有非AvgRevenuePerUnit列的行。@user2815197您有非空的行吗?只有这样,只有
NULL
值的行才会消失。