我有一个像
这样的查询 WITH MEMBER [measures].[Count] AS
SUM(([Location].[Hierarchy].[Zone].[1].Children),[Measures].[Length])
SELECT {[measures].[Count]} ON 0,
{[Location].[Hierarchy].[Zone].&[1].Children} on 1
FROM [NTAP]
我是MDX的真正初学者但是根据我的理解,这应该让我列出所有Zone 1:s的孩子以及所有这些孩子的总和。问题是我得到一个包含子项的列表和所有第1区:s长度的总和?
我明白了:
1 103026769420
2 103026769420
3 103026769420
4 103026769420
但我想得到的是这样的
1 84984958
2 9494949
3 934883
4 9458948588
位置是一个层次结构,如:
Zone Children
1
1
2
3
2
1
2
3
编辑:应该说我使用与成员的原因是measure.length在最终版本中将使用 Iif 。但我甚至无法做到这一点:(
edit2:修正拼写
答案 0 :(得分:1)
您将获得第1区的每个孩子的1区所有孩子的总和。
您可以将其重写为:
WITH MEMBER [Measures].[Count] AS
SUM([Location].[Hierarchy].CurrentMember.Children, [Measures].[Length])
SELECT {[Measures].[Count]} ON 0,
{[Location].[Hierarchy].[Zone].&[1].Children} on 1
FROM [NTAP]
顺便说一句,[1]<> &安培; [1]。没有&您正在指定名称并使用 - 键。如果在你的情况下key = name你没有什么可担心的。
答案 1 :(得分:0)
使用L>计算儿童的查询0将是:
WITH
MEMBER [Measures].[Count of Children with L more than 0] AS
FILTER([Location].[Hierarchy].CurrentMember.Children,
[Measures].[Length] > 0).COUNT
SELECT
{
[Measures].[Count of Children with L more than 0]
} ON 0,
{
[Location].[Hierarchy].[Zone].&[1]
} ON 1
FROM [Your Cube]
如果您在行上选择子项,那么这当然是行不通的,因为它们是离开的并且自己没有孩子,所以你会得到NULL。