SSAS多维数据集-模糊低值

SSAS多维数据集-模糊低值,ssas,mdx,cubes,Ssas,Mdx,Cubes,我有一项业务要求,为了保密,我需要掩盖低数字 我一直在尝试使用隐藏的度量和计算来实现这一点。隐藏的度量值名为“Conferences_Count”,我用于计算的MDX为: CREATE MEMBER CURRENTCUBE.[Measures].[Number of Encounters] AS IIF( [Measures].[Encounters_Count] <= 5, "<hidden>", [Measures].[Encounters_Count] ), FO

我有一项业务要求,为了保密,我需要掩盖低数字

我一直在尝试使用隐藏的度量和计算来实现这一点。隐藏的度量值名为“Conferences_Count”,我用于计算的MDX为:

CREATE MEMBER CURRENTCUBE.[Measures].[Number of Encounters]
    AS IIF( [Measures].[Encounters_Count] <= 5, "<hidden>", [Measures].[Encounters_Count] ),
FORMAT_STRING = "#,##0", NON_EMPTY_BEHAVIOR = { [Encounters_Count] }, VISIBLE = 1;
CREATE MEMBER CURRENTCUBE.[Measures].[遭遇次数]

由于IIF([Measures].[Conferences_Count]一旦你开始隐藏数字和摆弄总数,报告就会变得不那么准确……因此……如果你的业务用户说他们对不准确感到满意,为什么不考虑其他方法来实现你的目标(在考虑MDX之前)

您可以将所有总数增加5%/将最右边的数字替换为“8”/四舍五入到最接近的100

对所有总计执行此操作,MDX就不必担心IsLeaf()或某些总计中是否有隐藏值,而某些总计中是否没有隐藏值

WITH MEMBER [Measures].[Obscured Values] AS
IIF([Measures].[Encounters_Count] <= 5, "<hidden>", 
  IIF([Measures].[Encounters_Count] > 100, VBA!round([Measures].[Encounters_Count]*1.1, 0), [Measures].[Encounters_Count])
)
成员[Measures].[oblized value]为
IIF([Measures].[Conferences\u Count]100,VBA!回合([Measures].[Conferences\u Count]*1.1,0),[Measures].[Conferences\u Count])
)

一旦你开始隐藏数字和篡改总数,报告就会变得不准确……所以。。。如果您的业务用户说他们对不准确感到满意,为什么不考虑其他方法来实现您的目标(在考虑MDX之前)

您可以将所有总数增加5%/将最右边的数字替换为“8”/四舍五入到最接近的100

对所有总计执行此操作,MDX就不必担心IsLeaf()或某些总计中是否有隐藏值,而某些总计中是否没有隐藏值

WITH MEMBER [Measures].[Obscured Values] AS
IIF([Measures].[Encounters_Count] <= 5, "<hidden>", 
  IIF([Measures].[Encounters_Count] > 100, VBA!round([Measures].[Encounters_Count]*1.1, 0), [Measures].[Encounters_Count])
)
成员[Measures].[oblized value]为
IIF([Measures].[Conferences\u Count]100,VBA!回合([Measures].[Conferences\u Count]*1.1,0),[Measures].[Conferences\u Count])
)

据我所知,你需要的是,如果数字低,或者接近总数,你必须隐藏它

CREATE MEMBER CURRENTCUBE.[Measures].[Number of Encounters] AS
    IIF( ([Measures].[Encounters_Count] <> 0 AND [Measures].[Encounters_Count] <= 5)
      OR (    ([Measures].[Encounters_Count], [Dim1].[Hier1].[All]) - [Measures].[Encounters_Count] > 0
          AND ([Measures].[Encounters_Count], [Dim1].[Hier1].[All]) - [Measures].[Encounters_Count] <= 5)
      OR (    ([Measures].[Encounters_Count], [Dim1].[Hier2].[All]) - [Measures].[Encounters_Count] > 0
          AND ([Measures].[Encounters_Count], [Dim1].[Hier2].[All]) - [Measures].[Encounters_Count] <= 5)
      OR (    ([Measures].[Encounters_Count], [Dim2].[Hier1].[All]) - [Measures].[Encounters_Count] > 0
          AND ([Measures].[Encounters_Count], [Dim2].[Hier1].[All]) - [Measures].[Encounters_Count] <= 5)
      OR // add all 'All' members of all hierarchies here
       , "<hidden>", [Measures].[Encounters_Count] ),
    FORMAT_STRING = "#,##0", NON_EMPTY_BEHAVIOR = { [Encounters_Count] }, VISIBLE = 1;
CREATE MEMBER CURRENTCUBE.[Measures].[counter of conference]AS
IIF(([Measures].[Conferences\u Count]0和[Measures].[Conferences\u Count]0
和([Measures].[Conferences_Count],[Dim1].[Hier1].[All])-[Measures].[Conferences_Count]0
和([Measures].[Conferences_Count],[Dim1].[Hier2].[All])-[Measures].[Conferences_Count]0

和([Measures].[Conferences_Count],[Dim2].[Hier1].[All])-[Measures].[Conferences_Count]据我所知,如果数字低,或者接近总数,你需要隐藏它

CREATE MEMBER CURRENTCUBE.[Measures].[Number of Encounters] AS
    IIF( ([Measures].[Encounters_Count] <> 0 AND [Measures].[Encounters_Count] <= 5)
      OR (    ([Measures].[Encounters_Count], [Dim1].[Hier1].[All]) - [Measures].[Encounters_Count] > 0
          AND ([Measures].[Encounters_Count], [Dim1].[Hier1].[All]) - [Measures].[Encounters_Count] <= 5)
      OR (    ([Measures].[Encounters_Count], [Dim1].[Hier2].[All]) - [Measures].[Encounters_Count] > 0
          AND ([Measures].[Encounters_Count], [Dim1].[Hier2].[All]) - [Measures].[Encounters_Count] <= 5)
      OR (    ([Measures].[Encounters_Count], [Dim2].[Hier1].[All]) - [Measures].[Encounters_Count] > 0
          AND ([Measures].[Encounters_Count], [Dim2].[Hier1].[All]) - [Measures].[Encounters_Count] <= 5)
      OR // add all 'All' members of all hierarchies here
       , "<hidden>", [Measures].[Encounters_Count] ),
    FORMAT_STRING = "#,##0", NON_EMPTY_BEHAVIOR = { [Encounters_Count] }, VISIBLE = 1;
CREATE MEMBER CURRENTCUBE.[Measures].[counter of conference]AS
IIF(([Measures].[Conferences\u Count]0和[Measures].[Conferences\u Count]0
和([Measures].[Conferences_Count],[Dim1].[Hier1].[All])-[Measures].[Conferences_Count]0
和([Measures].[Conferences_Count],[Dim1].[Hier2].[All])-[Measures].[Conferences_Count]0

和([Measures].[Conferences_Count],[Dim2].[Hier1].[All])-[Measures].[Conferences_Count]我想知道是否可以让原始度量值不可见并创建另一个度量值来显示值,并在需要时保护/抑制它。这样,多维数据集可以像往常一样聚合/计算东西。

我想知道是否可以让原始度量值不可见并创建另一个度量值来显示值并保护/抑制它需要时。这种方式cube可以像往常一样聚合/计算事物。

我是SSAS的新手,在深入研究时,我搜索了google并尝试了多种方法,但都没有结果。
IsLeaf
对于度量值总是返回true,因为度量值本身位于
Measures
层次结构的底层,这种情况经常发生只有一个级别。我是SSAS的新手,被扔到了最深处,我搜索过谷歌,尝试了多种方法,但都没有结果。
IsLeaf
对于度量值总是会返回true,因为度量值本身位于
Measures
层次结构的最底层,恰好只有一个级别。如果我详细说明一下e隐藏低数字的原因。我们处理的一些数据是敏感数据。低数字可能会使数据背后的人被识别,这将违反保密性。如果使用的维度可以识别人而不是提供概述,则数据应该隐藏。我理解。但如果你打算对于一些总数中的数字,我认为如果你巧妙地将所有总数更改为随机数,这可能无关紧要。这仍然可以提供一个很好的概述(例如,a的总数为200 ish,而B的总数为1000 ish).只是一个想法。抱歉,我无法帮助您使用MDX。也许我可以详细说明隐藏低数字的原因。我们处理的一些数据是敏感数据。低数字可能会让数据背后的人被识别,这将违反保密性。如果使用的维度可以识别人,而不是给出oveR查看数据应该隐藏。我理解。但如果您要更改某些总数中的数字,我认为如果您以随机数量微妙地更改所有总数,可能没有关系。这仍然可以提供一个良好的概述(例如,a的总数为200 ish,而B的总数为1000 ish)。只是一个想法。很抱歉,我无法帮助您使用MDX。感谢您的贡献,我已更新了问题,以更好地显示我正在尝试实现的目标。我建议的定义不会显示“其他”列的值,因为它与Excel显示的“全部”成员(列标题为“总计”)之间的差异小于5。您尝试过吗?您只需要使用在测试查询中用于测试的层次结构,而不是多维数据集中的所有层次结构。感谢您的贡献,我已更新了问题以更好地显示我试图实现的目标。我建议的定义不会显示“其他”的值列,因为它与Excel显示的“全部”成员之间的差异小于5,列标题为“总计”。是否