SSAS 多维数据集上的数据透视表:隐藏没有测量结果的行
Pivottable on SSAS cube: hide rows without result on measure
我无法隐藏所选度量的某些维度成员没有数据的行,但度量组中有该成员的行。
考虑度量值组的以下数据源:
+---------+----------+----------+----------+--------+
| 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 多维数据集中的度量值组创建数据透视表时,这可能会导致以下结果:
但是,我想隐藏 Customer b
的行,因为给定的数据透视表中没有结果。我尝试使用 数据透视表选项 -> 显示 -> 显示行上没有数据的项目 但这只适用于 showing/hiding 给定度量组中根本没有引用的客户,说 Customer c
.
有没有办法隐藏没有给定度量结果的行,而不创建单独的度量组WHERE shipping IS NOT NULL
?
我正在使用 SQL-server 2008 和 Excel 2013
编辑:
为澄清起见,我使用 Excel 连接到 SSAS 多维数据集。生成的数据透视表(在 Excel 中)看起来像给定的图像。
也许是这样的(但我没有看到枢轴...)
DECLARE @tbl TABLE(invoice INT,customer VARCHAR(10),subtotal DECIMAL(8,2),shipping DECIMAL(8,2),total DECIMAL(8,2));
INSERT INTO @tbl VALUES
(1,'a',12.95,2.50,15.45)
,(2,'a',7.50,NULL,7.50)
,(3,'b',125.00,NULL,125.00);
SELECT customer, SUM(shipping) AS SumShipping
FROM @tbl
GROUP BY customer
HAVING SUM(shipping) IS NOT NULL
在 DSV 中找到带有运输列的 table 并添加一个带有表达式的计算列:
Case when shipping <> 0 then shipping end
请转到 BIDS 多维数据集设计器中 Shipping 度量的属性 window,并将 NullHandling 属性 更改为 Preserve。将源列更改为新的计算列。然后重新部署,我希望你的数据透视表中的那一行会消失。
并确保 Pivottable 选项 -> 显示 -> 显示行上没有数据的项目未选中。
如果还是不行,请将 Management Studio 的对象资源管理器 window 连接到 SSAS,并告诉我们它在服务器节点中显示的版本号。可能是您没有使用最新的服务包,这是一个错误。
进入 Excel 中的枢轴 table,单击客户列上的下拉菜单。在下拉菜单中,您会找到一个名为 Value Filters 的选项。在那里你可以设置类似 Shipping greater than 0.1.
这会根据度量值过滤您的客户维度列。
我无法隐藏所选度量的某些维度成员没有数据的行,但度量组中有该成员的行。
考虑度量值组的以下数据源:
+---------+----------+----------+----------+--------+
| 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 多维数据集中的度量值组创建数据透视表时,这可能会导致以下结果:
但是,我想隐藏 Customer b
的行,因为给定的数据透视表中没有结果。我尝试使用 数据透视表选项 -> 显示 -> 显示行上没有数据的项目 但这只适用于 showing/hiding 给定度量组中根本没有引用的客户,说 Customer c
.
有没有办法隐藏没有给定度量结果的行,而不创建单独的度量组WHERE shipping IS NOT NULL
?
我正在使用 SQL-server 2008 和 Excel 2013
编辑:
为澄清起见,我使用 Excel 连接到 SSAS 多维数据集。生成的数据透视表(在 Excel 中)看起来像给定的图像。
也许是这样的(但我没有看到枢轴...)
DECLARE @tbl TABLE(invoice INT,customer VARCHAR(10),subtotal DECIMAL(8,2),shipping DECIMAL(8,2),total DECIMAL(8,2));
INSERT INTO @tbl VALUES
(1,'a',12.95,2.50,15.45)
,(2,'a',7.50,NULL,7.50)
,(3,'b',125.00,NULL,125.00);
SELECT customer, SUM(shipping) AS SumShipping
FROM @tbl
GROUP BY customer
HAVING SUM(shipping) IS NOT NULL
在 DSV 中找到带有运输列的 table 并添加一个带有表达式的计算列:
Case when shipping <> 0 then shipping end
请转到 BIDS 多维数据集设计器中 Shipping 度量的属性 window,并将 NullHandling 属性 更改为 Preserve。将源列更改为新的计算列。然后重新部署,我希望你的数据透视表中的那一行会消失。
并确保 Pivottable 选项 -> 显示 -> 显示行上没有数据的项目未选中。
如果还是不行,请将 Management Studio 的对象资源管理器 window 连接到 SSAS,并告诉我们它在服务器节点中显示的版本号。可能是您没有使用最新的服务包,这是一个错误。
进入 Excel 中的枢轴 table,单击客户列上的下拉菜单。在下拉菜单中,您会找到一个名为 Value Filters 的选项。在那里你可以设置类似 Shipping greater than 0.1.
这会根据度量值过滤您的客户维度列。