Вот форма кода https://github.com/ssnau/xkit/blob/master/util/is-promise.js
!!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
, если объект с методом then
, его следует рассматривать как Promise
.
Вам необходимо внести следующее изменение. Вместо
WHEN [CONTAINER INSTANCE DIMENSION].[Container Size] = '20'
вам нужно написать
WHEN [CONTAINER INSTANCE DIMENSION].[Container Size].CurrentMember.MEMBER_CAPTION = '20'.
. В вашем запросе вы хотите выбрать свой множитель на основе значения размера контейнера. Чтобы получить значение, которое оценивается в данный момент, мы используем «Currentmember». Кроме того, вы проверяете свойство «MEMBER_CAPTION» вашего CURRENTMEMBER. Способ проверки значения не будет работать. MDX оценит
[CONTAINER INSTANCE DIMENSION].[Container Size] = '20'
как true, поскольку вы сравниваете атрибут измерения со значением. Следовательно, ваше предложение Else дает результат.
Ниже приведен пример AdventureWorks.
with member
[Measures].[Internet Sales AmountCase]
as
case
when [Product].[Size].CurrentMember.MEMBER_CAPTION = '38' then [Measures].[Internet Sales Amount]*1
when [Product].[Size].CurrentMember.MEMBER_CAPTION = '40' then [Measures].[Internet Sales Amount]*2
when [Product].[Size].CurrentMember.MEMBER_CAPTION = '46' then [Measures].[Internet Sales Amount]*3
else -99
end
select
{[Measures].[Internet Sales Amount],[Measures].[Internet Sales AmountCase]}
on columns,
([Date].[Month of Year].[Month of Year],[Product].[Size].[38]:[Product].[Size].[70])
on rows
from [Adventure Works]