Ssas 用于获取非空值记录的MDX查询
我是MDX的新手,你们中有谁能帮我解答以下问题吗 1) 从上面的结果集中,如何使用下面的查询消除column1和column3中具有空值的行Ssas 用于获取非空值记录的MDX查询,ssas,mdx,Ssas,Mdx,我是MDX的新手,你们中有谁能帮我解答以下问题吗 1) 从上面的结果集中,如何使用下面的查询消除column1和column3中具有空值的行 WITH MEMBER TotalPatientCnt as '[Measures].[HealthPlanPatientCnt]' MEMBER PrevalencePercent as '([Measures].[PatientCnt]*1.00/[Measures]. [TotalPatientCnt])*100' SELECT NON
WITH
MEMBER TotalPatientCnt as '[Measures].[HealthPlanPatientCnt]'
MEMBER PrevalencePercent as '([Measures].[PatientCnt]*1.00/[Measures]. [TotalPatientCnt])*100'
SELECT
NON EMPTY {[DimCP_Population].[Dr Key].[Dr Key]}
ON rows,
{
[Measures].[PatientCnt] ,[Measures].[TotalPatientCnt]
,[Measures].[PrevalencePercent]
}
ON columns
FROM [StrategyCompanionDWCube]
WHERE
(
[DimAnchorDate].[Date Key].&[20121231],
[DimCP_PCP].[PCP Key].&[124],
[DimProduct].[Product Key].&[15],
[DimHealthPlan].[Health Plan Key].&[1]
)
)
2) 我分别有3个维度和3个度量
[DimCP_PCP], [DimProduct], [DimHealthPlan]
pcpCnt, productCnt, HelahtPlanPatientCnt
我想根据带有参数值的维度类型构建相同的TotalPatientCnt
成员,希望需要编写case语句,但我无法编写case语句,请在下面的示例中帮助我们
WITH MEMBER TotalPatientCnt as
case
when [DimProduct].[Product Key].&[if getting anymember] then
'[Measures].[productCnt]'
when [DimHealthPlan].[Health Plan Key].&[if getting anymember] then
'[Measures].[HealthPlanPatientCnt]'
when [DimCP_PCP].[PCP Key].&[if getting anymember] then
'[Measures].[pcpCnt]'
如果我从[DimCP\u PCP]
获取任何参数,例如[DimCP\u PCP].[PCP Key]。&[124]
需要显示TotalPatientCnt成员,如下所示
WITH MEMBER TotalPatientCnt as '[Measures].[pcpCnt]'
WITH MEMBER TotalPatientCnt as '[Measures].[HealthPlanPatientCnt]'
WITH MEMBER TotalPatientCnt as '[Measures].[productCnt]'
如果我从[DimHealthPlan]
获取任何参数,例如[DimHealthPlan].[Health Plan Key].&[1]
需要显示TotalPatientCnt
成员,如下所示
WITH MEMBER TotalPatientCnt as '[Measures].[pcpCnt]'
WITH MEMBER TotalPatientCnt as '[Measures].[HealthPlanPatientCnt]'
WITH MEMBER TotalPatientCnt as '[Measures].[productCnt]'
如果我从[DimProduct]
示例[DimProduct].[Product Key].&[15]
获取任何参数,则需要显示TotalPatientCnt
成员,如下所示
WITH MEMBER TotalPatientCnt as '[Measures].[pcpCnt]'
WITH MEMBER TotalPatientCnt as '[Measures].[HealthPlanPatientCnt]'
WITH MEMBER TotalPatientCnt as '[Measures].[productCnt]'
要回答您的第一个问题: 由于
NON-EMPTY
不适用于此处的行,由于要排除的记录的第二列不为空,您可以使用很少记录的HAVING
子句,如下所示:
...
{[DimCP_Population].[Dr Key].[Dr Key]}
HAVING NOT IsEmpty([Measures].[PatientCnt])
AND NOT IsEmpty([Measures].[PrevalencePercent])
ON rows
...
要回答您的第一个问题: 由于
NON-EMPTY
不适用于此处的行,由于要排除的记录的第二列不为空,您可以使用很少记录的HAVING
子句,如下所示:
...
{[DimCP_Population].[Dr Key].[Dr Key]}
HAVING NOT IsEmpty([Measures].[PatientCnt])
AND NOT IsEmpty([Measures].[PrevalencePercent])
ON rows
...
或
在这里,您可能会得到您的答案,并明确空和空的概念
或
在这里,您可能会得到您的答案,并明确空和空的概念,这是两个问题。我建议你删除第二个问题,并将其作为单独的问题发布。这是两个问题。我建议你删除第二个,并将其作为单独的问题发布。你好,弗兰克,非常感谢。它正按照我的要求工作。请您提供第二点的解决方案,正如我在对您的问题的评论中所写的那样,以使搜索和重复使用答案对其他可能会出现问题的人来说更加容易。G通过Google查找您的问题和我的答案,我建议您编辑您的问题,使其仅包含一个问题和一个适当的标题,并将第二个问题放入一个单独的问题中。@FrankPl我也有类似的问题,但由于我在查询中使用topcount,它还考虑topcount中的空值,所以如果我的结果包括null,当我做topcount 3时,它返回10,20,30,当我做topcount 4时,它返回10,20,30。意味着它也在topcount中考虑空值。请帮助我,弗兰克,非常感谢。它正按照我的要求工作。请您提供第二点的解决方案,正如我在对您的问题的评论中所写的那样,以使搜索和重复使用答案对其他可能会出现问题的人来说更加容易。G通过Google查找您的问题和我的答案,我建议您编辑您的问题,使其仅包含一个问题和一个适当的标题,并将第二个问题放入一个单独的问题中。@FrankPl我也有类似的问题,但由于我在查询中使用topcount,它还考虑topcount中的空值,所以如果我的结果包括null,当我做topcount 3时,它返回10,20,30,当我做topcount 4时,它返回10,20,30。意味着它也在topcount中考虑空值。请帮忙