[英]SSAS MDX calculation filter
我想做这样的事情(tsql):
select saldi
where rek in (4,8)
and rek5 <> 41111
and rek3 not in (a,b,c)
在MDX之后,过滤器(4,8)<> 41111不起作用。 如果我卸下41111过滤器,则该措施工作正常,仅显示4/8。 将41111添加为“ <>”过滤器,结果为空白,甚至不为0.00。
THIS = IIF(
( [Rekeningen].[Rek n1].CurrentMember = [Rekeningen].[Rek n1].&[4]
or [Rekeningen].[Rek n1].CurrentMember = [Rekeningen].[Rek n1].&[8] )
and [Rekeningen].[Rek n5].CurrentMember <> [Rekeningen].[Rek n5].&[41111]
,
[Measures].[Saldi], 0.00
);
我尝试使用Google,但似乎没有正确输入关键字。 在social.msdn.microsoft.com上,很多反应都被标记为答案,但到目前为止对我而言还不是。 部署ssas多维数据集工作正常,没有错误。
有人能指出我正确的方向吗? 我尝试了Except ,但是该命令似乎不适用于多字段(rek3 / rek5)。
比较成员时使用IS
和NOT IS
。 这给了我们这个:
THIS =
IIF
(
(
[Rekeningen].[Rek n1].CurrentMember IS [Rekeningen].[Rek n1].&[4]
OR
[Rekeningen].[Rek n1].CurrentMember is [Rekeningen].[Rek n1].&[8]
)
AND
[Rekeningen].[Rek n5].CurrentMember IS NOT [Rekeningen].[Rek n5].&[41111]
,[Measures].[Saldi]
,0
);
而不是0
,几乎应该在多维数据集脚本calcs中始终使用null
,否则将导致性能下降:
THIS =
IIF
(
(
[Rekeningen].[Rek n1].CurrentMember IS [Rekeningen].[Rek n1].&[4]
OR
[Rekeningen].[Rek n1].CurrentMember is [Rekeningen].[Rek n1].&[8]
)
AND
[Rekeningen].[Rek n5].CurrentMember IS NOT [Rekeningen].[Rek n5].&[41111]
,[Measures].[Saldi]
,NULL
);
我不相信这些会员名吗? [Rekeningen].[Rek n1].CurrentMember
和[Rekeningen].[Rek n1].&[4]
。 让我添加我认为它们可能是的两种选择:
1。
THIS =
IIF
(
(
[Rekeningen].[Rek n1].CurrentMember IS [Rekeningen].[Rek n1].[Rek n1].&[4]
OR
[Rekeningen].[Rek n1].CurrentMember is [Rekeningen].[Rek n1].[Rek n1].&[8]
)
AND
[Rekeningen].[Rek n5].CurrentMember IS NOT [Rekeningen].[Rek n5].[Rek n5].&[41111]
,[Measures].[Saldi]
,NULL
);
要么
2。
THIS =
IIF
(
(
[Rekeningen].CurrentMember IS [Rekeningen].[Rek n1].&[4]
OR
[Rekeningen].CurrentMember is [Rekeningen].[Rek n1].&[8]
)
AND
[Rekeningen].CurrentMember IS NOT [Rekeningen].[Rek n5].&[41111]
,[Measures].[Saldi]
,NULL
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.