过滤isnoempty mdx

时间:2015-03-11 08:17:00

标签: mdx

我在OBIEE

中有以下代码
case when FILTER("- Work"."Actual Labour" USING ("- WorK"."Scheduled Flag" = 'SCHEDULED')) null then 0 else
FILTER("- Work"."Actual Labour" USING ("- Work"."Scheduled Flag" = 'SCHEDULED')) end

如何使用mdx,

我试试这个

iif(IsEmpty(FILTER("- Work"."Actual Labour" , ("- Work"."Scheduled Flag" = 'SCHEDULED'))  , 0 ,
FILTER("- Work Orders"."Actual Labour" , ("- Work"."Scheduled Flag" = 'SCHEDULED')) )

但它总是返回null

1 个答案:

答案 0 :(得分:0)

方括号用于mdx而不是用于标记:

IIF
(
  IsEmpty
  (
    Filter
    (
      [- Work].[Actual Labour]
     ,
      [- Work].[Scheduled Flag] = 'SCHEDULED'
    )
   ,0
   ,Filter
    (
      [- Work Orders].[Actual Labour]
     ,
      [- Work].[Scheduled Flag] = 'SCHEDULED'
    )
  )
)

但你的FILTER语句是错误的 - 你可以像这样使用这个函数:

IIF
(
  IsEmpty
  (
    Filter
    (
      [- Work].[Scheduled Flag].members
     ,
      [- Work].[Scheduled Flag].currentmember.member_caption = 'SCHEDULED'
    )
   ,null
   ,Filter
    (
      [- Work].[Scheduled Flag].members
     ,
      [- Work].[Scheduled Flag].currentmember.member_caption = 'SCHEDULED'
    )
  )
)

在我看来,您需要WHERE脚本中的mdx子句,如下所示:

WHERE
 ([- Work].[Scheduled Flag].[SCHEDULED])