powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / в mdx склеить значения 3-4 полей-атрибутов
42 сообщений из 42, показаны все 2 страниц
в mdx склеить значения 3-4 полей-атрибутов
    #39436399
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет Всем.
SSAS 2012

можно ли в mdx склеить значения 3-4 полей-атрибутов (c Разных димешненов )
(Если бы на одном я сделал бы вычислимое поле на уровен датасорса и склеил там )

аналог в SQL
Select fild1 + ';' + fild2 + ';' + fild2 as

ps там проблема в том что на дашбоарде в том гуи-клиенте можно показать толкьо 1 столбец-категорию (мер можно сколько угодно.)
(разработчики говорят что будет больше - но когда не известно)

т.е mdx Я написал руками ОК но у него выходных 4 поля-атрибута
вот мне как-то бы их склеить в одно поле.
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436403
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436410
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yuri AbeleГулин Федор,

MDX Calculated Members - Query-Scoped Calculated Members:
https://docs.microsoft.com/en-us/sql/analysis-services/multidimensional-models/mdx/mdx-calculated-members-query-scoped-calculated-members

СПС за быстрый фидбек
еще раз - там именно Calculated меры
А мне надо склеить атрибуты разных димешененов в 1 поле
чтобы обойти проблему в GUI клиенте
(мер там можно показать сколкьо угодно - а вот столбец Categories один)
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436416
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приведу mdx - мне бы склеить в одну
Patient Full Name + ';' + Gender + ';' + Age + ';' + Dim Event Type.Event Type Desc
(ключевой момент именно из разных дименешенов - с одной я бы сделал вычисляемый атрибут в датасорсе дименшена)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT  
NON EMPTY { [Measures].[# Events] } ON COLUMNS
,
ORDER(  
  NonEmpty 
	(
	[Dim Patient].[Patient Full Name].[Patient Full Name].MEMBERS -- ALLMEMBERS 
	* [Dim Patient].[Gender].[Gender].MEMBERS 
	* [Dim Patient].[Age].[Age].MEMBERS 
	* [Dim Event Type].[Event Type Desc].[Event Type Desc].MEMBERS 

	, [Measures].[# Events]
	)
	, [Measures].[# Events]
	, BDESC
	)  
HAVING  [Measures].[# Events] > 1 
ON ROWS 
FROM [DWH] 
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436447
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федор,

1. в CM можно и текстовые величины склеивать.

2. у каждого аттрибута есть ряд прямых (принадлежат ему) и связанных (ссылки на родительские аттрибуты) свойств.
Для части свойств есть Shortcuts, например MyDimension.MyHierarhy.CURRENTMEMBER.Name.
До остальных добираются через функцию PROPERTIES:

https://docs.microsoft.com/en-us/sql/analysis-services/multidimensional-models/mdx/mdx-member-properties-intrinsic-member-properties
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436460
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще парочка мыслей:

Eсли есть доступ к дизайну OLAP базы, то

- можно атрибутам задавать отдельное значение для свойства VALUE

- в DSV можно создавать Named Calculations - что-то вроде Computed Columns, только на уровне DSV
https://docs.microsoft.com/en-us/sql/analysis-services/multidimensional-models/define-named-calculations-in-a-data-source-view-analysis-services
и их уже, к примеру, использовать в VALUE свойстве аттрибутов

- у функции <member>.PROPERTIES(...) есть опционяльный параметр TYPED - без него все значения возвращаются как STRING, с ним соответсвующего типа - так можно, к примеру, с числами оперировать
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436493
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yuri AbeleЕще парочка мыслей:

Eсли есть доступ к дизайну OLAP базы, то

- можно атрибутам задавать отдельное значение для свойства VALUE

- в DSV можно создавать Named Calculations - что-то вроде Computed Columns, только на уровне DSV
https://docs.microsoft.com/en-us/sql/analysis-services/multidimensional-models/define-named-calculations-in-a-data-source-view-analysis-services
и их уже, к примеру, использовать в VALUE свойстве аттрибутов

- у функции <member>.PROPERTIES(...) есть опционяльный параметр TYPED - без него все значения возвращаются как STRING, с ним соответсвующего типа - так можно, к примеру, с числами оперировать

в DSV можно создавать Named Calculations
Я могу это создать - и в DSV и в таблице как вычислимое поле

куб мой - доступ ПОЛНЫЙ
-если бы с 1 димешнена был составное поле - так бы и сделал

с 2-х димешненов все равно не понимаю как это мне поможет (а потом может и 3 будет - кто знает)
у меня это НЕ меры а дименшены

резалтсет корректный - в екселе все ОК
- но мне надо как то склеить 4 поля в одно.
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436509
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
грубо говоря
есть вот
столбец1 столбец2
пациент1 событие2
пациент1 событие3

хочу в mdx получить вот :
столбец
пациент1 : событие2
пациент1 : событие3
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436516
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точнее
есть 1-й mdx
столбец1 столбец2 мера1

пациент1 событие2 мера1
пациент1 событие3 мера1

хочу из 1-го mdx получить 2 mdx
возвращающий резалтсет :

объед.столбец мера1
пациент1 : событие2 мера1
пациент1 : событие3 мера1
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436542
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в MDX нельзя на оси склеить, структуру менять надо, оси элементами атрибутов определяют контекст для ячеек - в которые передаются значения т.е. на пересечении координат осей (за искл. всех остальных которые default по умолчанию)
хочешь на оси поставить значения? - не получится (можно только добавить дополнительные Properties, но систему координат не выкинешь)
так что создавай новые мемберы (элементы атрибута) или в ручную или меняй структуру
тогда один ключ на ось - а на него по 1:1 иерархии child как значение (пересечением с осью на которой выбранные элементы измерения расчётных мер, т.е. {событие,мера1} где мера.событие = ключ.parent..member_name)
на ключ можешь имя соотв. пациента повесить

можно с DMX поизвращаться (в том-же подключении/окне что и MDX), там и аналог SQL join можно завернуть (через SHAPE/APPEND)
в крайнем случае передавай MDX результат в SQL через openquery/openrowset, и там манипулируй(чисти, склеивай стринги, join-ь результаты) как нужно.
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436553
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv,
И мне кажется что не получится - но вдруг воркараунд
все д.б в mdx - ибо его можно передать (скормить) гуи-клиенту

так что создавай новые мемберы (элементы атрибута)
не понял как
можно или ссылку или еще раз

Dim Patient].[Patient Full Name].[Patient Full Name].MEMBERS
* [Dim Event Type].[Event Type Desc].[Event Type Desc].MEMBERS

вот их мне надо склеить - где и что мне создавать (в кубе , в mdx ) ?


зы про dmx даже не в курсе - в любом случае клиент понимает только mdx
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436554
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федор,

проще уж тогда (временно) создать измерение, где будет нужный атрибут (склеенный)
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436568
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarikNavyГулин Федор,

проще уж тогда (временно) создать измерение, где будет нужный атрибут (склеенный)

да думал над этим воркараундом
составной дименшен ( поле1 + поле2)

50 событий *5000 пациентов и это пока (пациенты точно будут расти и сильно)
+ ETL менять

а потом 3 столбец добавить в репорт и что тогда еще новый димешн


(есть вариант что в гуи клиенте просто через. некоторое время добавят эту возможность )
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436959
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я повторюсь:

===================
Гулин Федор,

1. в CM можно и текстовые величины склеивать.

2. у каждого аттрибута есть ряд прямых (принадлежат ему) и связанных (ссылки на родительские аттрибуты) свойств.
Для части свойств есть Shortcuts, например MyDimension.MyHierarhy.CURRENTMEMBER.Name.
До остальных добираются через функцию PROPERTIES:

https://docs.microsoft.com/en-us/sql/analysis-services/multidimensional-models/mdx/mdx-member-properties-intrinsic-member-properties
===================

Или тут всё написано или я недопонимаю Вашу задачу. По моему всё-таки первое
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436960
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. что-то такое с тремя вариантами вытаскивания свойств аттрибутов (пишу не проверяя)

WITH
MEMBER Concatinated_Properties AS
MyDimention1.SomeHierarhy.CurrentMember.Name
+ ' ' +
OtherDimension.SomeHierarhy.CurrentMember.Properties('Name_Of_Parent_Attribute')
+ ' ' +
ThirdDimension.SomeHierahy.CurrentMember.Value
SELECT
Concatinated_Properties
ON COLUMNS,
NON EMPTY
MyDimention1.SomeHierarhy.SomeLevel.MEMBERS
*
OtherDimension.SomeHierarhy.SomeLevel.MEMBERS
*
ThirdDimension.SomeHierarhy.SomeLevel.MEMBERS
ON ROWS
FROM
MyCube
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39436962
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отформатированно:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
WITH
    MEMBER Concatinated_Properties AS
        MyDimention1.SomeHierarhy.CurrentMember.Name
        + ' ' +
        OtherDimension.SomeHierarhy.CurrentMember.Properties('Name_Of_Parent_Attribute')
        + ' ' +
        ThirdDimension.SomeHierahy.CurrentMember.Value
SELECT
    Concatinated_Properties
    ON COLUMNS,
    NON EMPTY
    MyDimention1.SomeHierarhy.SomeLevel.MEMBERS
    *
    OtherDimension.SomeHierarhy.SomeLevel.MEMBERS
    *
    ThirdDimension.SomeHierarhy.SomeLevel.MEMBERS
    ON ROWS
FROM
    MyCube
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39437493
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@Yuri Abele
За фидбек по любому СПС

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
WITH     MEMBER CnP1 AS
     [Dim Patient].[Patient Full Name].CurrentMember.Name        +  ':: ' 
		--+        [Dim Event Type].[Event Type].CurrentMember.Name -- Properties('Name_Of_Parent_Attribute')
		--, [Measures].[# of Events] 
		--[Measures].[# of Events] 
SELECT
    CnP1     ON COLUMNS ,
    NON EMPTY
	(
	[Dim Event Type].[Event Type].[Event Type].MEMBERS 
	-- *[Dim Patient].[Patient Full Name].[Patient Full Name].MEMBERS
    --, [Measures].[# of Events] 
	)
    ON ROWS
FROM [Simply Connect DWH] 



поэкспериментировал
мембер склеенный - получается
причем если 2 включены и там и там
Exception of type 'System.OutOfMemoryException' was thrown.
декарт похоже

результирующая мера у меня должна быть та же что в исходном mdx [Measures].[# of Events]
я не вижу ее в примере
просто вместо 2(3,4) столбцов атрибутов димешненов - я хотел получить один склеенный
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39437495
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня есть - mdx возвращает
столбец N1 N2 N3 мера [Measures].[# of Events]
Иванов M 55 1223
Патрова F 13 2345

а получить хочу

столбецСклеенный мера [Measures].[# of Events]
'Иванов M 55' 1223
'Патрова F 13' 2345

Я не понимаю как добавить меру [Measures].[# of Events] в приведенный пример
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39437697
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я правильно понимаю, что ты строку с числом склеить пытаешся?
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39437836
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yuri AbeleЯ правильно понимаю, что ты строку с числом склеить пытаешся?
да нет
склеить пытаюсь в 1 столбец
[Dim Event Type].[Event Type].[Event Type].
[Dim Patient].[Patient Full Name].[Patient Full Name]
(+ возможно еще что из димешненов)

чтобы мера осталалсь таже

из за того что гуи клиент в категорис может приянть только 1 стоблец
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39437958
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[Dim Patient].[Patient Full Name].CurrentMember.Name - STRING
[Measures].[# of Events] - INTEGER

Эти два типа данных не совместимы - нужно конвертировать второй в строку
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39437960
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я свосем запутался ...
В приведенном до этого MDX было [Measures].[# of Events] теперь что-то другое.
Конкретизируй, если не трудно
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39438110
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT  
NON EMPTY { [Measures].[# Events] } ON COLUMNS
,
ORDER(  
  NonEmpty 
	(
	[Dim Patient].[Patient Full Name].[Patient Full Name].MEMBERS -- ALLMEMBERS 
	* [Dim Patient].[Gender].[Gender].MEMBERS 
	* [Dim Patient].[Age].[Age].MEMBERS 
	* [Dim Event Type].[Event Type Desc].[Event Type Desc].MEMBERS 

	, [Measures].[# Events]
	)
	, [Measures].[# Events]
	, BDESC
	)  
HAVING  [Measures].[# Events] > 1 
ON ROWS 
FROM [DWH] 



mdx рабочий
резалт сет выглядят так
столбец N1 ,N2, N3 , N4 ,мера [Measures].[# of Events]
Иванов ,M ,55, травма , 1223
Патрова ,F, 13, болезнь , 2345

хотелось склеить 4 столбца в один [] + мера
[ объед. столбец]
[Иванов M 55 травма ] , 1223
[Патрова F 13 болезнь ] , 2345

ну т.е в SQL это было просто col_calc as col1 + ';' + col2 + ';' + col3
В mdx это похоже невозможно (или как-то оч. хитро )

зы я понимаю что это по сути изврат - подмена координат куба
воркараунд с добавочным димешненом ясен - но не годится
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39438586
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39439034
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarikNavy ,
да нет, openquery/openrowset (т.е. sql) сразу в тот-же день после вопроса через пару часов предложил, так что по ходу явно не прокатит из-за особенностей их локально-внутренних интерфейсов.

Гулин Федор ,
ещё раз предложу (natural prediction) join из DMX использовать, там вполне реально целые цепи разных результатов создавать, глянь как твой gui проглотит и отобразит такой запрос (соответственно Data Mining модель должна существовать в базе, создай какую-то минимальную для образца):
Код: sql
1.
2.
3.
4.
5.
6.
select flattened t.[[Measures]].[x]]]as a,t.[[Measures]].[Internet Sales Amount]]]as b,
t.[[Measures]].[Internet Order Quantity]]]as c from[Sequence Clustering]natural prediction join
(	with member measures.x as Product.Category.currentmember.name+" - "+[Date].[Calendar Year].currentmember.name
	select{measures.x,measures.[Internet Sales Amount],measures.[Internet Order Quantity]}on 0,
	non empty{[Date].[Calendar Year].&[2012],[Date].[Calendar Year].&[2013]}*Product.Category.children
	having not isempty(measures.[Internet Sales Amount])on 1from[Adventure Works])as t

abcAccessories - CY 20122147.08106Bikes - CY 20125839695.32523269Clothing - CY 2012642.7922Accessories - CY 2013668241.5334409Bikes - CY 201315359502.369706Clothing - CY 2013323806.458686так-же можно через shape/append/relate join-ить результаты разных MDX запросов, напр.:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select flattened t.*from[Sequence Clustering]natural prediction join
shape	{select{[Customer].[Country].&[Australia],[Customer].[Country].&[Canada]}on 0,
		{[Date].[Calendar Year].&[2012],[Date].[Calendar Year].&[2013]}on 1
		from[Adventure Works]where[Internet Sales Amount]
		}
append(	{select{[Product].[Category].&[1],[Product].[Category].&[3]}on 0,
		{[Date].[Calendar Year].&[2012],[Date].[Calendar Year].&[2013]}on 1
		from[Adventure Works]where[Internet Sales Amount]
		}
	relate[[Date]].[Calendar Year]].[Calendar Year]].[MEMBER_CAPTION]]]to[[Date]].[Calendar Year]].[Calendar Year]].[MEMBER_CAPTION]]]
	)as x
as t

[Date].[Calendar Year].[Calendar Year].[MEMBER_CAPTION][Customer].[Country].&[Australia][Customer].[Country].&[Canada]x.[Date].[Calendar Year].[Calendar Year].[MEMBER_CAPTION]x.[Product].[Category].&[1]x.[Product].[Category].&[3]CY 20122128407.4551307604.5237CY 20125839695.3252642.79CY 20134339443.381085632.65CY 201315359502.36323806.45
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39439037
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П.С. сама идея от Chris Webb здесь (он это решал при помощи Allan Mitchell)
может получится не только горизонтатльно - но и вертикально сложить через UNION (т.к. DMX как наследник урезаного SQL его тоже поддерживает), но это уже на любителя поизвращаться если кому охота эксперементировать с туманными перспективами.
кстати - DMV вроде как основан на DMX
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39439667
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkivда нет, openquery/openrowset (т.е. sql) сразу в тот-же день после вопроса через пару часов предложил, так что по ходу явно не прокатит из-за особенностей их локально-внутренних интерфейсов.


пока это вопрос затих (точнее образовались новые более срочные)
СПС всем - узнал много нового -

@vikkiv прокомментируй плз
openquery/openrowset (т.е. sql)
может я пропустил

доступ к бд есть полный
т.е это идея в том чтобы просто сделать запрос к исходной БД ( вместо mdx ) ?
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39439784
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
до SQL напрямую тебе насколько понимаю из MDX не получится достучаться, из-за этого ограничения:Гулин Федорвсе д.б в mdx - ибо его можно передать (скормить) гуи-клиенту1) но в окне MDX та-же выполняется и DMX который понимает openquery/openrowset (для первого нужен соответствующий DS, для второго - проверить настройки сервере/разрешить провайдера)
это на уровне SSAS
2) такая-же функциональность как указал StarikNavy есть и на уровне SQL (хотя тоже нужна дополнительная конфигурация от безопасности и ad-hoc distributed query, {linked server, openquery или openrowset}) - тогда можно манипулировать полями (колоннами) в SQL, но тебе это не подходит из-за ограничения

можно сделать напрямую на DMX (в MDX окне) или объединить первое и второе (из DMX вызвать SQL который выполнит MDX запрос и отформатирует результат) - но это наверное уже изврат какой-то (два раза вызывать openquery/openrowset, один раз как DMX и второй как SQL)

поэтому в свете ограничения - первичная задача проверить экспериментальным путём : работает-ли твой GUI с DMX.
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39439786
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федорт.е это идея в том чтобы просто сделать запрос к исходной БД ( вместо mdx ) ?не совсем, используется функциональность SQL (для манипуляции с полями) - а сами данные берутся из SSAS
но до SQL не обязательно стучаться, проверь как DMX напрямую сработает, тогда DMX вытащит нужные поля из MDX
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39440315
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федорв SQL это было просто col_calc as col1 + ';' + col2 + ';' + col3
В mdx это похоже невозможно (или как-то оч. хитро )
Если эти три фиговины можно отобразить с помощью MDX отдельными кололками, то можно и "склеить" и отобразить одной.
Как - я показал выше и ссылки накидал. Если на словах, то, еще раз:
- если MEASURE - просто берем его значение
- если это элементы измерений, то обращаемся к CURRENT_MEMBER соотв. иерархий, и потом или прямые свойства или функция PROPERTIES(...)
Важно! (для MSSQL тоже!) Полученные значения должны быть приведены (конвертированы) к совместимым типам данных, например с помощью функции CSTR(...)
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39440322
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... а причем тут ad-hock запросы к исходным данным совсем не понял - зачем из пушки по воробьям?
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39440411
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если не ошибаюсь - обычно чтобы разрешить openquery/openrowset на стороне SQL требутеся конфигурация типа
Код: sql
1.
2.
exec sp_configure'Ad Hoc Distributed Queries',1;
reconfigure

да, путь конечно муторный - но при такой задаче нужны альтернативы, хотя ещё раз - первый пример DMX из MDX даёт нужный результат без openquery/openrowset (на стороне SSAS), т.е. доп конфигурация не нужна. может ты путаешь с
Код: sql
1.
sp_configure'optimize for ad hoc workloads',1

? (я SQL сервер перед каждым SSAS процессингом в этот режим перевожу кроме XMLA конфигурации)
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39440422
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я туплю навреное, но, пересмотрев еще раз, так и не нашел намека на то, что автору топика нужен доступ к исходным (тем более не агрегированным и уж тем более из "сырой" базы MSSQL) данным.
На сколько я понял, ему просто нужно итерируя по одной запрошенной в MDX оси (ON ROWS к примеру), выводить "склеинными" свойства текущих элементов измерений и меры.
КАК? - много раз показал/объяснил выше.
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39440430
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
от куда делается однозначный вывод о доступе к исходным данным как цели последовательности операций? создаётся только подключение чтобы использовать более удобный инструментарий другого языка/диалекта (хотя при желании и можно получать из исходных данных - т.к. соединение в своём спектре имеет и такую функциональность)
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39440439
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вывод из постингов выше.

Вопрос еще раз - а зачем нужно так замороченно, если можно просто взять два значения и склеить (при необходимости, конвертнув в строку)?
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39440569
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yuri Abele..Вопрос еще раз - а зачем нужно так замороченно, если можно просто взять два значения и склеить (при необходимости, конвертнув в строку)?Yuri Abele,
это одна из наиболее вероятных интерпретаций из вводной, т.е. особенностей GUI берущего:
(а) первую колонну из dataset
(б) на первую позицию
(в) при том что MDX возвращает в (a) - первую позицию вертикальной оси (set элементов атрибута)
(г) интерфейс работает с MDX и не работает с SQL

задача: вывести в условиях (а) и (б) несуществующий показатель в пределах ограничений (в) и (г)
что означает сужение альтернатив решений до:
0) (из-) менять интерфейс / или разбираться с его документацией-настройками (может и работает на самом-то деле)
1) {расчётную} меру (склеенную из стрингов) туда не получится поставить, значит можно только атрибут (если делать средствами MDX) - которого в нынешней структуре куба/измерений нет (т.е. надо делать/менять структуру)
или
2) не меняя структуру - использовать дополнительные возможности смежного/другого диалекта (взаимозаменяемость DMX и MDX) имеющую необходимую для решения проблемы функциональность.


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



это о методологии основной проблемы,Гулин Федорпричем если 2 включены и там и там
Exception of type 'System.OutOfMemoryException' was thrown.
декарт похожевторая - часто обсуждаемая на форуме (out of memory или сходная/кореллирующая: ограничение в 4.3 миллиарда туплов в crossjoin) решается через nonempty/exists/auto-exists (если это не проблема на клиенте - Excel часто выдаёт данные лучше {быстрее и без переполнения буфера} чем SSMS) - для нужной группы мер (+использовав autoexists для атрибутов из одного и того-же измерения, особенно эффективно если связи между атрибутами настроены правильно)

причём NON_EMPTY_BEHAVIOR и NonEmptyCrossJoin - уже практически списанная функциональность (последние SSAS ядра это уже оптимизируют внутри автоматом)
для решения вторичной проблемы можно ещё рассмотреть последовательность в которой выполняются запросы MDX: from(subcube-subquery)/where(slicers)/with(sets-members)/axis/having&non empty
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39447719
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkivкак-бы никто и не спорит что можно склеить нужную меру, затруднение в том что такой вариант не вписывается в ограничения - следовательно не решает вопрос.
Так вот, как раз эти самые ограничения введены вами, а не автором. Автору же просто два значения (меры или свойства элементов измерений) склеить надо было.


Гулин Федорпричем если 2 включены и там и там
Exception of type 'System.OutOfMemoryException' was thrown.
Просто надо на ось не все элементы измерения пихать, а только те, для которых существует исходная мера.
Абстрактный пример:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
WITH
    MEBER Concatinated_Value AS
        Some_Dim.Some_Hierarhy.CURRENT_MEMBER.PROPERTIES('Some_Property')
        +
        CStr(MEASURES.Some_Physical_Measure)
SELECT
    Exists(
        Some_Dim.Some_Hierarhy.Some_Level.MEMBERS,
        MEASURES.Some_Physical_Measure
    ) ON ROWS,
    Concatinated_Value ON COLUMNS
FROM
    Some_Cube
WHERE
    (Some_Slice)
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39447742
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тогда я наверное неверно понял вот эти вводные: 20388517 Гулин Федор..ps там проблема в том что на дашбоарде в том гуи-клиенте можно показать толкьо 1 столбец-категорию (мер можно сколько угодно.)
(разработчики говорят что будет больше - но когда не известно).. 20388611 Гулин Федор..СПС за быстрый фидбек
еще раз - там именно Calculated меры
А мне надо склеить атрибуты разных димешененов в 1 поле
чтобы обойти проблему в GUI клиенте
(мер там можно показать сколкьо угодно - а вот столбец Categories один)..
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39447761
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... эээб т.е. ему надо на осях отображате "склеенные" элементы?
Если так, то проще всего на уровне DSV named calculations создавать, только ВАЖНО!!! - жестко задавать тип и размер значений.
Т.е. не

Код: sql
1.
MyTable.FirstColumn + MyTable.SecondColumn



а, к примеру:

Код: sql
1.
CAST(MyTable.FirstColumn + MyTable.SecondColumn AS NVARCHAR(200))



и проверять при изменениях, соответствует ли тип данных у соотв. аттрибута
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39447766
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yuri Abele... эээб т.е. ему надо на осях отображате "склеенные" элементы?
Если так, то проще всего на уровне DSV named calculations создавать...
Хотя и тут - если просто один из столбцов ResultSet-а выбирается в роли категории (как в SSRS например), то возвращаемся к CALCULATED MEASURE
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39447853
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yuri AbeleYuri Abele... эээб т.е. ему надо на осях отображате "склеенные" элементы?
Если так, то проще всего на уровне DSV named calculations создавать...
Хотя и тут - если просто один из столбцов ResultSet-а выбирается в роли категории (как в SSRS например), то возвращаемся к CALCULATED MEASURE

значит я плохо объяснял
на уровне одного димешнена - DSV помогате
вопрос был имнно в разных димешеннах

ps пока уже не актуально - другие более актуальные пробелмы есть.
...
Рейтинг: 0 / 0
в mdx склеить значения 3-4 полей-атрибутов
    #39448042
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федорвопрос был имнно в разных димешеннах
вопрос не в этом, а в том, должно ли это быть обязательно измерение на одной оси или достаточно и как-то вычесленного Calculated Member (на MEASURES или "прикрепленный" к другому измерению?
...
Рейтинг: 0 / 0
42 сообщений из 42, показаны все 2 страниц
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / в mdx склеить значения 3-4 полей-атрибутов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]