我正在为一家能源公司签订SSAS多维数据集合同。
一项措施是“合同数量”。他们有电力和天然气合同。因此合约数量单位为km3或MWh。
措施“合同数量”最好不要拆分为Gas和El,但应采用相同的措施。
如何向最终用户显示不同的单位?我最好使用依赖于契约类型的FormatString(信息都在基础事实表和维度中)。我能这样做吗?
无论如何,我可以制造天然气和天然气可以与天然气混合 - 但不是天然气可聚合的吗?
编辑:SQL Server 2008 R2多维
编辑:谢谢@Mike Honey 以下是我在脚本视图中编写的代码:
SCOPE
(
{[Measures].[Measure 1],
[Measures].[Measure 2],
[Measures].[Measure 3],
[Measures].[Measure 4]}
);
SCOPE([Contract Type].[Contract types].[Energy].&[El].Children);
FORMAT_STRING ( This ) = "#,##0.00 \k\W\h;-#,##0.00 \k\W\h";
END SCOPE;
SCOPE ([Contract Type].[Contract types].[Energy].&[El]);
FORMAT_STRING ( This ) = "#,##0.00 \k\W\h;-#,##0.00 \k\W\h";
END SCOPE;
SCOPE([Contract Type].[Contract types].[Energy].&[Gas].Children);
FORMAT_STRING ( This ) = "#,##0.00 k\m\3;-#,##0.00 \k\m\3";
END SCOPE;
SCOPE ([Contract Type].[Contract types].[Energy].&[Gas]);
FORMAT_STRING ( This ) = "#,##0.00 \k\m\3;-#,##0.00 \k\m\3";
END SCOPE;
END SCOPE;
答案 0 :(得分:3)
我认为您可以使用SCOPE: https://msdn.microsoft.com/en-us/library/ms145515.aspx
在多维数据集中,您可以选择计算。您可以在此处使用范围来创建这些不同的单位。
答案 1 :(得分:3)
我认为你有两个挑战 - 但两者都可以用一对SCOPE语句来解决。
在Cube的Calculations选项卡中,我首先在Measures层次结构上创建一个Calculated Member,其值为NULL。然后(在脚本视图中)我会添加一对SCOPE语句(对于Gas和El)。每个的子立方体表达式将特定新的计算量度,以及分别指定气体和EL的维度成员。
然后在每个SCOPE语句中,您可以使用This =
语法指定Gas和El的源度量,然后使用FORMAT_STRING ( This ) =
语法指定度量格式。
SCOPE ... END SCOPE可以嵌套,因此如果您愿意,可以在额外的父SCOPE中添加包裹这两个SCOPE,它指定计算的度量,因此您不必重复该度量名称。