我得到了一个立方体,上面有城市一些社区的地籍信息。其中一个衡量标准是“地籍价值”:一个社区的土地价值。现在,城市被划分为区和一个区,分为社区(具有两级的层次结构)。
问题是:我需要计算每个邻域的值与父(区)和总(市)的百分比,以及区与市的百分比。
我该怎么做呢?
我试过了:
WITH MEMBER
[Measures].[Percentage] AS
([Nbh].[Nbh].[Nbh],[Measures].[Cad value].CurrentMember
/[Nbh].[Nbh].[Nbh],[Measures].[Cad value].CurrentMember.Parent)
SELECT
{[Measures].[Percentage]} ON 0,
[Nbh].[Nbh].[Nbh].AllMembers ON 1
FROM Cadastre其中尺寸是:
Nbh :邻居
Cad值:地籍值
我得到的是每个结果值中的“错误”,解释是“当前成员():参数(0)类型不匹配:期望:‘级别|层次结构|维度’,得到:‘度量’”
我做错了什么?
发布于 2015-10-29 05:53:41
尝试以下操作:
WITH MEMBER [Measures].[Parent %] AS
IIF(
[Nbh].[Nbh].CURRENTMEMBER IS [Nbh].[Nbh].[All]
,1
,[Measures].[Cad value] /
(
[Measures].[Cad value],
[Nbh].[Nbh].CurrentMember.Parent
)
), FORMAT_STRING = 'Percent'
SELECT
{[Measures].[Parent %]} ON 0,
[Nbh].[Nbh].[Nbh].AllMembers ON 1
FROM Cadastre;包括IIF在内是一种防御性措施。如果切换到显示完整层次结构的AllMembers,则将包括All成员。下面是一个使用AdvWrks的示例
WITH
MEMBER [Measures].[Parent %] AS
IIF
(
[Product].[Subcategory].CurrentMember
IS
[Product].[Subcategory].[All Products]
,1
,
[Measures].[Internet Sales Amount]
/
(
[Measures].[Internet Sales Amount]
,[Product].[Subcategory].CurrentMember.Parent
)
)
,FORMAT_STRING = 'Percent'
SELECT
NON EMPTY
{[Measures].[Parent %]} ON 0
,NON EMPTY
[Product].[Subcategory].ALLMEMBERS ON 1
FROM [Adventure Works];上面的代码返回以下内容:

如果不使用IIF,则表达式如下:
WITH
MEMBER [Measures].[Parent %] AS
[Measures].[Internet Sales Amount]
/
(
[Measures].[Internet Sales Amount]
,[Product].[Subcategory].CurrentMember.Parent
)
,FORMAT_STRING = 'Percent'
SELECT
NON EMPTY
{[Measures].[Parent %]} ON 0
,NON EMPTY
[Product].[Subcategory].ALLMEMBERS ON 1
FROM [Adventure Works];由于缺乏远见,我们得到了以下结果:

发布于 2015-10-29 15:40:53
成员Measures.Percentage为的
(Nbh.Nbh.Nbh,Measures.Cad value.CurrentMember /Nbh.Nbh.Nbh,Measures.Cad value.CurrentMember.Parent)
这有两个问题:
其一,您正在使用静态集合来计算计算成员的值,即: This is [Nbh].[Nbh].[Nbh] [Nbh].[Nbh].CURRENTMEMBER
第二个也是更大的错误:在度量上使用currentmember。你不能这么做。您可以使用Measures.CURRENTMEMBER,但仅此而已。它最适合在轴上使用的层次结构上使用。
也就是说,您的方法几乎是合法的。您需要获取父级的度量值。
这应该是可行的:
WITH MEMBER
[Measures].[Percentage] AS
DIVIDE
(
[Measures].[Cad value],
([Nbh].[Nbh].CURRENTMEMBER.PARENT,[Measures].[Cad value]) //Cad value for parent
)
SELECT
{[Measures].[Percentage]} ON 0,
[Nbh].[Nbh].[Nbh].AllMembers ON 1
FROM Cadastre发布于 2015-10-29 05:33:20
这个错误肯定是因为下面的语句不正确:
WITH MEMBER
[Measures].[Percentage]
AS ([Nbh].[Nbh].[Nbh],[Measures].[Cad value].CurrentMember/[Nbh].[Nbh].[Nbh],[Measures].[Cad value].CurrentMember.Parent)试着这样做
WITH MEMBER
[Measures].[Percentage]
AS ([Nbh].[Nbh].[Nbh],[Measures].[Cad value])/([Nbh].[Nbh].[Nbh],[Measures].[Cad value])https://stackoverflow.com/questions/33398890
复制相似问题