MDX:为度量添加条件



我想修改一个度量,以便使用集合进行过滤:如果成员属于集合,则度量返回默认度量,否则返回0。

这是我的尝试:

with
MEMBER spename AS [Dim misc].[SpePats].[Speciality Id].[{1037B3B2-EB0C-4DA3-BD9D-EB54F6CA92A5}].FirstChild.membervalue
SET spesSame AS filter([Dim misc].[SpePats].[Speciality Id].MEMBERS
,[Dim misc].[SpePats].CurrentMember.FirstChild.MemberValue = spename)--filter
MEMBER nb AS iif(IsEmpty(Intersect({[Dim misc].[SpePats].CurrentMember}
,spesSame))--intersect
,0
,Measures.[VParcours Nombre])
SELECT {nb} ON 0
,{[Dim misc].[SpePats].[Speciality Id].&[{1037B3B2-EB0C-4DA3-BD9D-EB54F6CA92A5}]
,[Dim misc].[SpePats].[Speciality Id].&[{1095C7D1-F24C-4E22-B2E4-4C2959E29FFD}]} ON 1
FROM [BDD PBM]

以下是一些解释:首先,检索一些医院服务的特征名称。例如,名称可以是"妇科"。然后,创建名称与spename相同的专业id集,因此spesSame是名称为'gynecology'的专业id列表。

我需要构造nb,定义如下:如果层次结构SpePats的当前成员属于spesSame(相交函数),则结果是患者数量,否则为0,但结果始终是患者数量(在我的请求中,以行为单位,第一个specialty id属于spesSame,而不是第二个)。

谢谢。

好的,iif的语法是错误的,正确的是:

MEMBER nb AS iif(Intersect({[Dim misc].[SpePats].CurrentMember}
,spesSame).count=0--intersect
,0
,[Measures].[VPARCOURS Nombre])

显然isempty测试单元格是否为空。如果有人能进一步解释背后的原因……

相关内容

  • 没有找到相关文章

最新更新