Sql server SSAS多维数据集上的数据透视表:隐藏没有度量结果的行

Sql server SSAS多维数据集上的数据透视表:隐藏没有度量结果的行,sql-server,excel,ssas,pivot-table,olap-cube,Sql Server,Excel,Ssas,Pivot Table,Olap Cube,我很难隐藏没有选定度量值的某些维度成员数据的行,但是度量值组中有该成员的行 考虑测量组的以下数据源: +---------+----------+----------+----------+--------+ | invoice | customer | subtotal | shipping | total | +---------+----------+----------+----------+--------+ | 1 | a | 12.95 | 2.5

我很难隐藏没有选定度量值的某些维度成员数据的行,但是度量值组中有该成员的行

考虑测量组的以下数据源:

+---------+----------+----------+----------+--------+
| invoice | customer | subtotal | shipping | total  |
+---------+----------+----------+----------+--------+
| 1       | a        | 12.95    | 2.50     | 15.45  |
| 2       | a        | 7.50     |          | 7.50   |
| 3       | b        | 125.00   |          | 125.00 |
+---------+----------+----------+----------+--------+
尝试基于SSAS多维数据集中的度量值组创建数据透视表时,可能会导致以下结果:

但是,我想隐藏
客户b
的行,因为给定的数据透视表中没有结果。我曾尝试使用数据透视表选项->显示->显示行中没有数据的项目,但这只适用于显示/隐藏给定度量值组中根本没有引用的客户,例如
客户c

是否有任何方法可以隐藏给定度量值没有结果的行,而不创建单独的度量值组
,其中shipping不为NULL

我正在使用SQL server 2008和Excel 2013

编辑:

为了澄清,我使用Excel连接到SSAS多维数据集。生成的数据透视表(在Excel中)看起来像给定的图像。

可能是这样的(但我看不到数据透视…)

可能是这样的(但我看不到轴心…)


在DSV中,找到带有shipping列的表,并添加一个带有表达式的计算列:

Case when shipping <> 0 then shipping end
装运0时的情况,然后装运结束
请转到BIDS中多维数据集设计器中装运度量值的属性窗口,并将NullHandling属性更改为保留。将源列更改为新的计算列。然后重新部署,我希望你们支点上的那一排会消失

并确保未选中“数据透视表选项->显示->显示行中没有数据的项”


如果仍然不行,请将ManagementStudio的Object Explorer窗口连接到SSAS,并告诉我们它在服务器节点中显示的版本号。可能是您不在最新的service pack上,这是一个bug

在DSV中找到包含shipping列的表,并添加一个带有表达式的计算列:

Case when shipping <> 0 then shipping end
装运0时的情况,然后装运结束
请转到BIDS中多维数据集设计器中装运度量值的属性窗口,并将NullHandling属性更改为保留。将源列更改为新的计算列。然后重新部署,我希望你们支点上的那一排会消失

并确保未选中“数据透视表选项->显示->显示行中没有数据的项”


如果仍然不行,请将ManagementStudio的Object Explorer窗口连接到SSAS,并告诉我们它在服务器节点中显示的版本号。可能是您不在最新的service pack上,这是一个bug

进入Excel中的透视表,单击客户列上的下拉列表。在下拉菜单中,您将找到一个名为值过滤器的选项。在那里,您可以设置装运大于0.1的值


这将根据度量值筛选客户维度列。

进入Excel中的透视表,单击客户列上的下拉列表。在下拉菜单中,您将找到一个名为值过滤器的选项。在那里,您可以设置装运大于0.1的值



这将根据度量值筛选您的客户维度列。

请显示您当前使用的查询…@Shnugo:因为我使用Excel连接到SSAS多维数据集,所以我没有使用任何查询。我在问题中记下了这一点,因为这似乎还不够清楚。@Aquillo“运送”是一种物理测量的计算测量。当你点击顾客B的空白运输单元格时,你会在公式栏中看到什么?GravgAlffy是一个物理度量,虽然如果在这个例子中需要计算的度量,我一定会考虑它。请注意,我希望有一个“全面”的解决方案,使用维度
Customer
只是一个例子。如果我所问的不可能,并且每种情况都需要自定义计算,那就这样吧,但至少我会知道。@Aquillo你能回答我上面的所有问题吗?请显示你目前使用的查询…@Shnugo:因为我使用Excel连接到SSAS多维数据集,所以我没有使用任何查询。我在问题中记下了这一点,因为这似乎还不够清楚。@Aquillo“运送”是一种物理测量的计算测量。当你点击顾客B的空白运输单元格时,你会在公式栏中看到什么?GravgAlffy是一个物理度量,虽然如果在这个例子中需要计算的度量,我一定会考虑它。请注意,我希望有一个“全面”的解决方案,使用维度
Customer
只是一个例子。如果我问的是不可能的,并且每种情况都需要自定义计算,那就这样吧,但至少我会知道。@Aquillo你能回答我上面的所有问题吗?这是SSAS不是SQL这是SSAS不是SQLTREAD使用保留为NullHandling属性并取消选中选项。没有更改,我认为这是因为给定成员实际上有行,只是没有给定度量值的行。版本是10.50.6000.34问题是,尽管sourcetable中没有零值,但Excel仍然显示零。快速查询
,其中shipping=0
不会给出任何结果。度量值(组)直接基于表,没有指定的查询或表达式。@Aquillo如果您注释掉整个MDX脚本(除了CAlCULATE),它是否仍然显示0?您是否有发货为空的行?您是否将NullHandling=Preserve设置为正确?除非您更改度量值的设置,否则空值将作为0存储在SSAS中。Greg,非常感谢您的帮助。看来,