Ssas MDX:将SELECT转换为WITH语句

Ssas MDX:将SELECT转换为WITH语句,ssas,mdx,Ssas,Mdx,我一直在尝试将MDX查询语句转换为WITH语句。我希望实现这一点,以便在其他查询中重用计算出的数字 以下是查询: SELECT [Measures].[VPARCOURS Nombre] ON 0 FROM [BDD PBM] where { [Dim misc].[CCAMs].[CCAM].MEMBERS - [Dim misc].[CCAMs].[CCAM].&[] } 以下是我想要得到的: with member Nombre as ... select [Nombre],&l

我一直在尝试将MDX查询语句转换为WITH语句。我希望实现这一点,以便在其他查询中重用计算出的数字

以下是查询:

SELECT [Measures].[VPARCOURS Nombre] ON 0
FROM [BDD PBM]
where { [Dim misc].[CCAMs].[CCAM].MEMBERS - [Dim misc].[CCAMs].[CCAM].&[] }
以下是我想要得到的:

with member Nombre as ...
select [Nombre],<I will add some other things here later>
成员名为。。。
选择[Nombre],
你能帮我吗

编辑 谢谢你的回答;我会向你解释整件事。 原始查询如下:

with
MEMBER Nombre AS [Measures].[VPARCOURS Nombre]
MEMBER [Nombre total] AS 
nonempty(filter([Dim misc].[CCAMs].[Patient Id].members, [Dim misc].[CCAMs].currentmember.parent.membervalue <> "")
    ,[Measures].[VPARCOURS Nombre]
).count
MEMBER Pourcentage AS Nombre / [Nombre total] * 100

SELECT
{ Nombre, [Nombre total], Pourcentage } ON 0,
TopPercent(
    filter([Dim misc].[CCAMs].[CCAM].members, [Dim misc].[CCAMs].currentmember.membervalue <> "" ),
    80,
    [Measures].[VPARCOURS Nombre])
ON 1
FROM [BDD PBM]
where strtoset(@hospital_CCAM)
与
成员名称为[措施].[VPARCOURS Nombre]
成员[名义总数]为
非空(筛选器([Dim misc].[CCAMs].[Patient Id]。成员,[Dim misc].[CCAMs]。currentmember.parent.membervalue“”)
,[措施].[VPARCOURS Nombre]
).伯爵
成员名称/名称总计*100
挑选
{Nombre,[Nombre total],Pourcentage}在0上,
超过(
筛选器([Dim misc].[CCAM].[CCAM].members[Dim misc].[CCAM].currentmember.membervalue”“),
80,
[措施].[VPARCOURS Nombre])
在1号
来自[BDD PBM]
strtoset(@hospital\u CCAM)的位置
重点是计算成员[Nombre total],即CCAM不为“”的患者总数。它在以“nonempty”开头的行中计算。在我的多维数据集中,我有一个退化维度[Dim misc],它包含一个层次结构CCAM,内部有两个级别:CCAM(一个类别,它是一个字符串字段,患者可以有一个CCAM,或空的CCAM,”),和PatientId,添加到这里只是为了让这个请求生效。这个请求是可行的,但是使用PatientId expresselly并不是很令人满意,因为毕竟OLAP多维数据集本机具有求和功能。
所以我想计算CCAM不是“”的患者总数,我在问题中提出的这个要求似乎更好,但我唯一想做的是不要改变其他计算。

我的理解是,您希望合并两个查询。如果是这样,那么下面是您将如何做

成员名为。。。 选择{[Measures].[VPARCOURS Nombre],Measures.Nombre} 在0 来自[BDD PBM]
其中{[Dim misc].[CCAM].[CCAM].MEMBERS-[Dim misc].[CCAM].[CCAM].&[]}

我不想合并这两个查询,只需计算成员并在第二个查询中重用它。它就像sql中的一个子查询,在一个普通查询中。或者换一种说法:在您写给我的查询中,在WHERE语句中添加切片会更改主查询的行为(选择[Measures].[VPARCOURS Nombre]…),如果我不想更改行为,只想更改成员值,该怎么办?因此,基本上您希望在计算中绕过WHERE子句的上下文。为此,在计算中添加以下内容。“Dim misc].[CCAM].[CCAM].defaultmember”。或者在这里共享代码,我可以为您调整。