Mdx 加法和减法可以,但不能除法

Mdx 加法和减法可以,但不能除法,mdx,iccube,Mdx,Iccube,使用以下Calc成员: create calculated member [NbJoursNonAmbuTemp] as sum([Ambu].[Ambu].[Ambu].[Non Ambulatoire], [Nombre de Journées]) create calculated member [NbJoursNonAmbuFinal] as IIF( [Ambu].[Ambu].current is [Ambu].[Ambu].[Ambulatoire], 0, di

使用以下Calc成员:

create calculated member [NbJoursNonAmbuTemp] as 
   sum([Ambu].[Ambu].[Ambu].[Non Ambulatoire], [Nombre de Journées])
create calculated member [NbJoursNonAmbuFinal] as 
    IIF( [Ambu].[Ambu].current is [Ambu].[Ambu].[Ambulatoire], 0, divN([NbJoursNonAmbuTemp], 1 , null)   )
create calculated member [NbSejoursNonAmbuTemp] as 
    sum([Ambu].[Ambu].[Ambu].[Non Ambulatoire], [NbSejours])
create calculated member [NbSejoursNonAmbuFinal] as 
    IIF( [Ambu].[Ambu].current is [Ambu].[Ambu].[Ambulatoire], 0, divN([NbSejoursNonAmbuTemp], 1 , null)   )
以下MDX:

WITH 
  MEMBER toto AS 
    Sum
    (
      CrossJoin
      (
        Descendants
        (
          [Classification GHM].[DA_GP_GA_GHM].CurrentMember
         ,[Classification GHM].[DA_GP_GA_GHM].[GHM]
         ,SELF
        )
       ,Descendants
        (
          [Periode].[Periode].CurrentMember
         ,[Periode].[Periode].[Année-L]
         ,SELF
        )
      )
     ,
        [Measures].[NbSejoursNonAmbuFinal] * [Measures].[dsmFrance]
      / 
        [Measures].[NbJoursNonAmbuFinal]
    ) 
SELECT 
  {
    toto
   ,[Measures].[NbJoursNonAmbuFinal]
  } ON 0
 ,[Classification GHM].[DA_GP_GA_GHM].[All-M] ON 1
FROM [Cube]
WHERE 
    {
      [Etablissement].[Lieu établissement].[Etablissement-L].&[720016724]
    }
  * 
    {[Periode].[Periode].[Année-L].[2014]};
未给出
toto
的预期值

但如果不是(除法)

我尝试(添加)

或(减法)

一切都计算正确

我做错了什么

Txs对@whytheq的建议,我成功地使用:

WITH 
  MEMBER HospidiagWIP AS 
    Sum
    (
      CrossJoin
      (
        Descendants
        (
          [Classification GHM].[DA_GP_GA_GHM].CurrentMember
         ,[Classification GHM].[DA_GP_GA_GHM].[GHM]
         ,SELF
        )
       ,Descendants
        (
          [Periode].[Periode].CurrentMember
         ,[Periode].[Periode].[Année-L]
         ,SELF
        )
      )
     ,
      [Measures].[NbSejoursNonAmbuFinal] * [Measures].[dsmFrance]
    ) 
    MEMBER [Measures].[IPDMS HospidiagTest] as HospidiagWIP / [Measures].[NbJoursNonAmbuFinal]  , format_string='0.000'
SELECT 
  {
   [Measures].[IPDMS HospidiagTest]
   ,[Measures].[IPDMS]
  } ON 0
 ,[Classification GHM].[DA_GP_GA_GHM].[All-M] ON 1
 // ,{[Classification GHM].[DA_GP_GA_GHM].[All-M]} * {[Periode].[Periode].[Année-L].[2013], [Periode].[Periode].[Année-L].[2014]} ON 1

FROM [Cube]
WHERE 
    {
      [Etablissement].[Lieu établissement].[Etablissement-L].&[720016724]
    }
  * 
    {[Periode].[Periode].[Année-L].[2014]}

尝试以下操作并检查结果-是否有助于分析发动机的工作情况

试着执行一个解决命令

WITH 
  MEMBER PREtoto AS
        [Measures].[NbSejoursNonAmbuFinal] * [Measures].[dsmFrance]
      / 
        [Measures].[NbJoursNonAmbuFinal]
     ,SOLVE_ORDER = 1
  MEMBER toto AS 
    Sum
    (
      CrossJoin
      (
        Descendants
        (
          [Classification GHM].[DA_GP_GA_GHM].CurrentMember
         ,[Classification GHM].[DA_GP_GA_GHM].[GHM]
         ,SELF
        )
       ,Descendants
        (
          [Periode].[Periode].CurrentMember
         ,[Periode].[Periode].[Année-L]
         ,SELF
        )
      )
     ,
      PREtoto
    ) 
    ,SOLVE_ORDER = 2   //<<or try the other way by changing to -1
SELECT 
  {
    PREtoto
   ,toto
   ,[Measures].[NbJoursNonAmbuFinal]
  } ON 0
 ,[Classification GHM].[DA_GP_GA_GHM].[All-M] ON 1
FROM [Cube]
WHERE 
    {
      [Etablissement].[Lieu établissement].[Etablissement-L].&[720016724]
    }
  * 
    {[Periode].[Periode].[Année-L].[2014]};
与
普雷托托议员
[措施].[Nbsejoursnambufinal]*[措施].[DSM法国]
/ 
[措施].[NBJOURSNANAMBU最终版本]
,求解_顺序=1
托托议员
总和
(
叉乘
(
后代
(
[分类GHM].[DA_GP_GA_GHM].当前成员
,[分类GHM].[DA_GP_GA_GHM].[GHM]
自己
)
,后代
(
[Periode][Periode]。当前成员
,[Periode]。[Periode]。[Année-L]
自己
)
)
,
普雷托托
) 

,SOLVE_ORDER=2//多亏了你的建议,我终于取得了好成绩。。。我把它贴在主要问题上。我很高兴你一切顺利。
,([Measures].[NbSejoursNonAmbuFinal] * [Measures].[dsmFrance]) - [Measures].[NbJoursNonAmbuFinal]
WITH 
  MEMBER HospidiagWIP AS 
    Sum
    (
      CrossJoin
      (
        Descendants
        (
          [Classification GHM].[DA_GP_GA_GHM].CurrentMember
         ,[Classification GHM].[DA_GP_GA_GHM].[GHM]
         ,SELF
        )
       ,Descendants
        (
          [Periode].[Periode].CurrentMember
         ,[Periode].[Periode].[Année-L]
         ,SELF
        )
      )
     ,
      [Measures].[NbSejoursNonAmbuFinal] * [Measures].[dsmFrance]
    ) 
    MEMBER [Measures].[IPDMS HospidiagTest] as HospidiagWIP / [Measures].[NbJoursNonAmbuFinal]  , format_string='0.000'
SELECT 
  {
   [Measures].[IPDMS HospidiagTest]
   ,[Measures].[IPDMS]
  } ON 0
 ,[Classification GHM].[DA_GP_GA_GHM].[All-M] ON 1
 // ,{[Classification GHM].[DA_GP_GA_GHM].[All-M]} * {[Periode].[Periode].[Année-L].[2013], [Periode].[Periode].[Année-L].[2014]} ON 1

FROM [Cube]
WHERE 
    {
      [Etablissement].[Lieu établissement].[Etablissement-L].&[720016724]
    }
  * 
    {[Periode].[Periode].[Année-L].[2014]}
WITH 
  MEMBER PREtoto AS
        [Measures].[NbSejoursNonAmbuFinal] * [Measures].[dsmFrance]
      / 
        [Measures].[NbJoursNonAmbuFinal]
     ,SOLVE_ORDER = 1
  MEMBER toto AS 
    Sum
    (
      CrossJoin
      (
        Descendants
        (
          [Classification GHM].[DA_GP_GA_GHM].CurrentMember
         ,[Classification GHM].[DA_GP_GA_GHM].[GHM]
         ,SELF
        )
       ,Descendants
        (
          [Periode].[Periode].CurrentMember
         ,[Periode].[Periode].[Année-L]
         ,SELF
        )
      )
     ,
      PREtoto
    ) 
    ,SOLVE_ORDER = 2   //<<or try the other way by changing to -1
SELECT 
  {
    PREtoto
   ,toto
   ,[Measures].[NbJoursNonAmbuFinal]
  } ON 0
 ,[Classification GHM].[DA_GP_GA_GHM].[All-M] ON 1
FROM [Cube]
WHERE 
    {
      [Etablissement].[Lieu établissement].[Etablissement-L].&[720016724]
    }
  * 
    {[Periode].[Periode].[Année-L].[2014]};