расчет не работает в итоговых суммах - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь создать вычисляемый элемент в SSAS, который даст мне следующее:

Я хочу создать новую меру "AdjustedQuantity", которая в основном равна длине * Количество (нормализовано до 30 ).Длина и количество указаны в одной таблице фактов.

См. Изображение ниже.пример: если длина равна 15, количество должно быть уменьшено вдвое, поскольку 15 равно половине от 30. Если длина равна 60, количество должно быть удвоено и т. д. Поле AdjustedQuantity - это то, что я хочу, но мои результаты (показаны в столбце «MyAttempt_WRONG»)) не дайте мне правильные итоги.Обратите внимание, у меня также есть [Длина] в качестве измерения.

Примечание: длина может быть 30, 60, 15, 45 и др.

CREATE MEMBER CURRENTCUBE.[Measures].[MyMeasure]
 AS [Measures].[Quantity] * ([Measures].[Length]/30), 

enter image description here

1 Ответ

0 голосов
/ 04 июня 2018

Решение, которое будет работать лучше всего, - добавить в DSV столбец, который будет:

Quantity * Length/30

Затем создайте показатель суммы для этого столбца.

Если вам нужно сделать это в MDX, несмотря на худшую производительность, чем описанная выше, попробуйте:

CREATE MEMBER CURRENTCUBE.[Measures].[MyMeasure]
 AS SUM(
  EXISTING [Your Length Dimension].[Length].[Length].Members,
  [Measures].[Quantity] * (Your Length Dimension].[Length].CurrentMember.Member_Key/30)
);

В основном вам нужно выполнить умножение на длину, чтобы получить сумму оттуда.Member_Key предполагает, что ключ атрибута измерения длины является целочисленным представлением длины.

...