MDX-запрос "с членом" и проблема сумм - PullRequest
1 голос
/ 26 мая 2011

У меня есть запрос типа

   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, но, насколько я понимаю, мне следует составить список со всеми детьми в Зоне 1 и суммой всех этих детей. Проблема в том, что я получаю список с детьми и суммой всех зон 1: s Длина?

Я понял:

1 103026769420
2 103026769420
3 103026769420
4 103026769420

Но я бы хотел получить что-то вроде этого

1 84984958
2 9494949
3 934883
4 9458948588

Местоположение - это иерархия, подобная:

Зона Дети

1
   1
   2
   3
2
   1
   2
   3

edit: вероятно, следует сказать, что причина, по которой я использую с элементом , заключается в том, что measure.length будет с Iif в окончательной версии. Но я даже не могу заставить это работать: (

edit2: исправлено написание

Ответы [ 2 ]

1 голос
/ 26 мая 2011

Вы получаете сумму всех детей зоны 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]. Без & вы указываете имя, а с - ключ. Если в вашем случае ключ = имя, вам не о чем беспокоиться.

0 голосов
/ 27 мая 2011

Запрос подсчета детей с 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, поскольку они - листья и сами не имеют детей.

...