Как удалить все символы после первого пробела для элементов измерения OLAP - PullRequest
2 голосов
/ 06 апреля 2020

У меня есть измерение, состоящее из членов со следующим форматом 100 - Продажа, 200 - Покупка и т. Д. c. Что я должен сделать sh, так это подстроку, начинающуюся слева, и удалить все после первого пробела. Таким образом, результатом будет «100» и «200» для двух примеров. Я делал это в sql ранее со следующим синтаксисом кода: LEFT (MyField, CHARINDEX ('', MyField) - 1)

Но, кажется, это не работает, когда я применяю ту же логику c в SSAS. ВЛЕВО ([MyField]. [MyField] .Members, CHARINDEX ('', [MyField]. [MyField] .Members) -1).

Кто-нибудь знает синтаксис для выполнения sh того же самого в SSAS?

С уважением, Рубрикс

1 Ответ

2 голосов
/ 06 апреля 2020

Вы должны использовать функцию INSTR (вместо CHARINDEX), что-то вроде этого в базе данных Adventure Works:

with member Measures.[Short Name]
as
left("Aaron A. Allen", instr("Aaron A. Allen", " " ) - 1)

select Measures.[Short Name] on 0,
[Customer].[Customer].members on 1
from [Adventure Works];

или как это:

with member Measures.[Customer Short Name]
as
left([Customer].[Customer].currentmember.MEMBER_CAPTION, instr([Customer].[Customer].currentmember.MEMBER_CAPTION, " " ) - 1)

select {Measures.[Customer Short Name], [Measures].[Customer Count]} on 0,
[Customer].[Customer].members on 1
from [Adventure Works]

enter image description here

...