SSAS非零测量计数

时间:2018-02-15 13:55:37

标签: ssas mdx

我是SSAS多维数据集的新手,需要一些帮助。我有一个从事实表创建的多维数据集和一个度量,让我们称之为金额,包含零。此度量是作为SUM创建的。 现在我也有SSAS设计师添加的Count测量。 我需要的是所有非零金额的计数。 我试图将计算出的度量添加为

`IIF([Measures].[amount] > 0,[Measures].[RowCount],null)` 

也试过了     FILTER([Measures].[RowCount],[Measures].[Amount] > 0) 这两个都返回计数,包括金额= 0。 我通过SSMS sql查询验证它 SELECT count(*) FROM [dbo].[Fact_Session] where SiteKey = 5 and DateKey = 20170201 and Amount >0
任何帮助表示赞赏。我的假设是IIF / Filter语句将在Cubing之前对各行进行操作,因为一旦聚合到维度中,由于聚合,该量将不为0。请帮助。

1 个答案:

答案 0 :(得分:0)

要计算非零,您可以使用此方法:

WITH 
MEMBER [Measures].[IsNotEmpty] AS
  IIf(
   Not(IsEmpty([Measures].[Amount]))
   ,1
   ,Null
  )

但最好在一个特定集合的SUM中执行此操作 - 因此以下计算有多少子类别不为空:

WITH 
MEMBER [Measures].[SubCategory_IsNotEmpty] AS
  SUM(
    [Product].[Product Categories].[SubCategory].members
   ,IIf(
      Not(IsEmpty([Measures].[Amount]))
      ,1
      ,Null
    )
  )