【发布时间】:2021-10-16 09:33:08
【问题描述】:
我想修改一个度量以使用集合进行过滤:如果成员属于集合,则度量返回默认度量,否则返回 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的currentmember属于spesSame(相交函数),则结果为患者数,否则为0,但结果始终为患者数患者(在我的请求中,在行中,第一个专业 id 属于 spesSame,而不是第二个)。
谢谢。
【问题讨论】: