SSAS MDX 计算

SSAS MDX calculation

我需要一个计算量度 (SSAS MD) 来计算计数值的百分比。

我试过下面的表达式,但我没有得到想要的 output.Let 我知道我是否遗漏了任何东西,我想计算汽车总年龄组的百分比:

    ( [DimCar].[Car], [DimAge].[Age], [Measure].[Count])/ 
sum([DimCar].[Car].[All].children), ([DimAge].[Age].[All], [Meaures].[Count])}*100

以下是多维数据集中的示例日期值:

Car     Age   Count
-----  -----  -----
Benz     1      2
Camry           37
Honda    1      18
Honda    6      10

Expected output:


Car    Age    Count Percent  TotalCount 
----- -----  ----- ------ ---------- 
Benz   1       2   100%       2   
Camry         37   100%       37    
Honda  1      18   64.28%     28    
Honda  6      10   35.71%     28    



   
计算百分比的公式:

18/28*100 =64.28% 
10/28*100 =35.71%   

Honda  1  18   64.28%  28    
Honda  6  10   35.71%  28 

我的理解是,对于特定的本田汽车示例,您想除以本田的总数,而不考虑它们的年龄。在本例中为 28。因此对于 Age:six 本田,您使用 10/28。至于 Benz,因为所有 Benz 都是 Age: 1 你使用 2。 使用以下代码

 Round(
(
    ( [DimCar].[Car].currentmember, [DimAge].[Age].currentmember, [Measure].[Count])
    / 
    ([DimCar].[Car].currentmember,root([DimAge]),[Measure].[Count])
    )*100
,2)

下面是冒险作品的类似例子

with member 
measures.t as 
(
( [Product].[Category].currentmember, [Delivery Date].[Calendar Year].currentmember, [Measures].[Internet Order Quantity])
/ 
([Product].[Category].currentmember,root([Delivery Date]),[Measures].[Internet Order Quantity])
)*100
select {[Measures].[Internet Order Quantity],measures.t} 
on columns ,

non empty
([Product].[Category].[Category],[Delivery Date].[Calendar Year].[Calendar Year])
on rows 
from [Adventure Works]

with Member  [Measures].[Total Sales Count] 
as iif (isempty([Measures].[Sales]),NUll, sum([Model].[Modelname].[All].children ,[Measures].[Sales]))

Member [Measures].[Total Sales%]
as ([Measures].[Sales]/[Measures].[Total Sales Count]),FORMAT_STRING = "Percent"

select {[Measures].[Sales],[Measures].[Total Sales Count],[Measures].[Total Sales%]
}on 0
,non empty{[Car].[Carname].[Carname]*[Model].[Modelname].[Modelname]} on 1
from [Cube]

Output :

Car     Model     Sales  Total Sales Count  Total Sales%
Benz  New Model   2     2                   100.00%
Camry  Old Model  37     37                 100.00%
Honda  New Model  18     28                  64.29%
Honda  Top Model  10     28                  35.71%

我添加了 "Model" 维度而不是 "Age" 属性。 下面的代码得到了预期的准确输出。

enter image description here