Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSAS 2005: DistinctCount мера и Calculated Member как увязать / 25 сообщений из 28, страница 1 из 2
02.11.2005, 17:21
    #33358346
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
Есть такая проблема:
В наличии SSAS 2005 September CTP.
Куб, 3 измерения, 2 меры (Count и DistinctCount)
все хорошо, до того, пока не создаю в одном из измерений Calculated Member, объединяющий 3 элемента в один, Count - суммируется, и DC тоже (прочитал у Моши, что сделали так специально). А как сделать чтоб DC считался правильно? Там же GrandTotal считается правильно.

Код: plaintext
1.
CREATE MEMBER CURRENTCUBE.[Продукт].[Производитель].[All].[AAA]
 AS AGGREGATE({[Продукт].[Производитель].&[AAA1], [Продукт].[Производитель].&[AAA2], [Продукт].[Производитель].&[AAA3]}), VISIBLE =  1 ;

прим: колонка "Должно быть" считается как
Код: plaintext
Count(Crossjoin({...}, {Measures.[С_мера]}), excludeempty)
...
Рейтинг: 0 / 0
02.11.2005, 17:22
    #33358350
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
З.Ы. забыл вложить
...
Рейтинг: 0 / 0
02.11.2005, 17:54
    #33358466
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
ShIgorи DC тоже (прочитал у Моши, что сделали так специально).

Где прочитал? Когда ж они это сделали? С какого CTP?
...
Рейтинг: 0 / 0
02.11.2005, 19:15
    #33358693
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
New AS2005 functions

Aggregate( [, ] )

Well, this isn't new function, but there were significant changes around it. First, Aggregate works with Distinct Count measure, as well as with semiadditive measures - even when the set for Aggregate includes Time dimension. Aggregate function can also work when the current measure is calculated measure, by switching solve orders with it. I.e. If the current measure is Ratio: Sales/Cost, and we are computing Aggregate({USA, Canada}), then instead of error, it will return Aggregate({USA, Canada},Sales)/Aggregate({USA, Canada},Cost).

я так понял, что именно об этом и речь, а написано у него в блоге
...
Рейтинг: 0 / 0
02.11.2005, 20:58
    #33358813
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
ShIgor New AS2005 functions

Aggregate( [, ] )

Well, this isn't new function, but there were significant changes around it. First, Aggregate works with Distinct Count measure, as well as with semiadditive measures - even when the set for Aggregate includes Time dimension. Aggregate function can also work when the current measure is calculated measure, by switching solve orders with it. I.e. If the current measure is Ratio: Sales/Cost, and we are computing Aggregate({USA, Canada}), then instead of error, it will return Aggregate({USA, Canada},Sales)/Aggregate({USA, Canada},Cost).

я так понял, что именно об этом и речь, а написано у него в блоге

Да, я это читал раньше.
И как я понял из прочитаннго - в отличие от AS2K в AS2K5 Aggregate наконец то работает с DC мерами как положено.

Правильно, Моша?
...
Рейтинг: 0 / 0
03.11.2005, 15:19
    #33360411
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
так что ж получается, вообще никто еще не делал DistinctCount?
...
Рейтинг: 0 / 0
03.11.2005, 16:52
    #33360749
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
Я просто еще не трогал DC (я сейчас со мигрированным кубом с вожусь у которого нет DC) с февральского или апрельского CTP, когда Моша сказал, что там все OK и действительно было OK.

Только сейчас какая то коррида.

берем стандартный AW

запрос


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with
member [Product].[Product Categories].[Road and Mountain] as 
aggregate([Product].[Product Categories].[Subcategory].&[ 2 ],[Product].[Product Categories].[Subcategory].&[ 1 ])
member [Product].[Product Categories].[Mountain and Road] as 
aggregate([Product].[Product Categories].[Subcategory].&[ 1 ], [Product].[Product Categories].[Subcategory].&[ 2 ])

select 
	{[Measures].[Customer Count], [Measures].[Internet Order Count]} on columns,
{[Product].[Product Categories].[Category].&[ 1 ],
 [Product].[Product Categories].[Category].&[ 1 ].children,
 [Product].[Product Categories].[Road and Mountain],
 [Product].[Product Categories].[Mountain and Road]
}
on rows
from [Adventure Works]


результат

Код: plaintext
1.
2.
3.
4.
5.
6.
	Customer Count	Internet Order Count
Bikes		9,132	15,205
Mountain Bikes	4,089	4,970
Road Bikes	6,397	8,068
Touring Bikes	2,143	2,167
Road and Mountain	 4.089	4.970 
Mountain and Road	 6.397	8.068 


оффигеть - "от перемены мест слагаемых меняется сумма", кто бы мог подумать
...
Рейтинг: 0 / 0
03.11.2005, 21:33
    #33361236
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
backfireоффигеть - "от перемены мест слагаемых меняется сумма", кто бы мог подумать
Вы просто допустили маленькую ошибку в написании MDX - забыли поставить фигурные скобки вокруг сета. В итоге получили вызов Aggregate с двумя параметарами - первый эту сет из одного элемента, а второй - выражение которое надо посчитать на этом сете. Если написать правильно - то от перемены мест ничего не меняется:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with
member [Product].[Product Categories].[Road and Mountain] as 
aggregate({[Product].[Product Categories].[Subcategory].&[ 2 ],[Product].[Product Categories].[Subcategory].&[ 1 ]})
member [Product].[Product Categories].[Mountain and Road] as 
aggregate({[Product].[Product Categories].[Subcategory].&[ 1 ], [Product].[Product Categories].[Subcategory].&[ 2 ]})

select 
	{[Measures].[Customer Count], [Measures].[Internet Order Count]} on columns,
{[Product].[Product Categories].[Category].&[ 1 ],
 [Product].[Product Categories].[Category].&[ 1 ].children,
 [Product].[Product Categories].[Road and Mountain],
 [Product].[Product Categories].[Mountain and Road]
}
on rows
from [Adventure Works]

ShIgorвсе хорошо, до того, пока не создаю в одном из измерений Calculated Member, объединяющий 3 элемента в один, Count - суммируется, и DC тоже (прочитал у Моши, что сделали так специально). А как сделать чтоб DC считался правильно? Там же GrandTotal считается правильно
Уважаемый ShIgor - Вы действительно не совсем правильно поняли что я писал. Я имел в виду что Aggregate по Disctinct Count должен возвращать правильный ответ а не суммировать. Так оно и работало, но в последний момент закрался баг. Баг происходит не всегда, например если использовать этот calculated member в WHERE clause, то результат правильный. Большое Вам спасибо за то что Вы эту проблему обнаружили. Я ее уже у себя починил - и это войдет в SP1. Вы также можете попросить hotfix у PSS - Вас должны обслужить бесплатно.
Еще раз спасибо,
Моша.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
03.11.2005, 21:47
    #33361246
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
Mosha backfireоффигеть - "от перемены мест слагаемых меняется сумма", кто бы мог подумать
Вы просто допустили маленькую ошибку в написании MDX - забыли поставить фигурные скобки вокруг сета. В итоге получили вызов Aggregate с двумя параметарами - первый эту сет из одного элемента, а второй - выражение которое надо посчитать на этом сете. Если написать правильно - то от перемены мест ничего не меняется:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with
member [Product].[Product Categories].[Road and Mountain] as 
aggregate({[Product].[Product Categories].[Subcategory].&[ 2 ],[Product].[Product Categories].[Subcategory].&[ 1 ]})
member [Product].[Product Categories].[Mountain and Road] as 
aggregate({[Product].[Product Categories].[Subcategory].&[ 1 ], [Product].[Product Categories].[Subcategory].&[ 2 ]})

select 
	{[Measures].[Customer Count], [Measures].[Internet Order Count]} on columns,
{[Product].[Product Categories].[Category].&[ 1 ],
 [Product].[Product Categories].[Category].&[ 1 ].children,
 [Product].[Product Categories].[Road and Mountain],
 [Product].[Product Categories].[Mountain and Road]
}
on rows
from [Adventure Works]

ShIgorвсе хорошо, до того, пока не создаю в одном из измерений Calculated Member, объединяющий 3 элемента в один, Count - суммируется, и DC тоже (прочитал у Моши, что сделали так специально). А как сделать чтоб DC считался правильно? Там же GrandTotal считается правильно
Уважаемый ShIgor - Вы действительно не совсем правильно поняли что я писал. Я имел в виду что Aggregate по Disctinct Count должен возвращать правильный ответ а не суммировать. Так оно и работало, но в последний момент закрался баг. Баг происходит не всегда, например если использовать этот calculated member в WHERE clause, то результат правильный. Большое Вам спасибо за то что Вы эту проблему обнаружили. Я ее уже у себя починил - и это войдет в SP1. Вы также можете попросить hotfix у PSS - Вас должны обслужить бесплатно.
Еще раз спасибо,
Моша.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights


О том ли баге речь, что правильный запрос

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with
member [Product].[Product Categories].[Road and Mountain] as 
aggregate({[Product].[Product Categories].[Subcategory].&[ 2 ],[Product].[Product Categories].[Subcategory].&[ 1 ]})
member [Product].[Product Categories].[Mountain and Road] as 
aggregate({[Product].[Product Categories].[Subcategory].&[ 1 ], [Product].[Product Categories].[Subcategory].&[ 2 ]})

select 
	{[Measures].[Customer Count], [Measures].[Internet Order Count]} on columns,
{[Product].[Product Categories].[Category].&[ 1 ],
 [Product].[Product Categories].[Category].&[ 1 ].children,
 [Product].[Product Categories].[Road and Mountain],
 [Product].[Product Categories].[Mountain and Road]
}
on rows
from [Adventure Works]

вообще возвращает NULLs

Код: plaintext
1.
2.
3.
4.
5.
6.
	Customer Count	Internet Order Count 
Bikes	             9,132	15,205
Mountain Bikes	4,089	4,970
Road Bikes	6,397	8,068
Touring Bikes	2,143	2,167
Road and Mountain	 (null)	(null) 
Mountain and Road	 (null)	(null) 
Или я снова что то неправильно написал?

з.ы. Тестирую на x64
...
Рейтинг: 0 / 0
03.11.2005, 21:59
    #33361251
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
Моша, вы забыли дописать в исправлении моего запроса, что aggregate без второго параметра Measures.CurrentMember будет выдавать NULL,
что впрочем противоречит BOL

BOLIf Numeric_Expression is not specified, this function aggregates each measure within the current query context using the default aggregation operator specified for each measure.

хотя что это я про BOL ....
...
Рейтинг: 0 / 0
03.11.2005, 22:18
    #33361258
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
backfireМоша, вы забыли дописать в исправлении моего запроса, что aggregate без второго параметра Measures.CurrentMember будет выдавать NULL, что впрочем противоречит BOL
Нет, совершенно не обязательно указывать второй параметер (ведь именно так, без второго параметра вызывает эту функциу Excel, OWC и другие аппликации во время групинга и мультиселекта). У меня все работает правильно, но я уже давно на SP1. Возможно это еще одна инкарнация проблемы котору обнаружил ShIgor.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
04.11.2005, 00:32
    #33361320
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
MoshaНет, совершенно не обязательно указывать второй параметер (ведь именно так, без второго параметра вызывает эту функциу Excel, OWC и другие аппликации во время групинга и мультиселекта).

только OWC-шники и иже с ними, будут ждать как минимум до рождества а то и до пасхи, пока у них ssas начнет без закидонов работать.

или SP1 выйдет официально 23 февраля?
...
Рейтинг: 0 / 0
04.11.2005, 00:37
    #33361322
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
backfireтолько OWC-шники и иже с ними, будут ждать как минимум до рождества а то и до пасхи, пока у них ssas начнет без закидонов работать.
Ну при обычном мултиселекте все отрабатывает правильно (как я писал выше) - поэтому эту проблему пока никто не заметил. Это вот кто пишет свой custom MDX - тем может оказаться сложнее. Если ShIgor обратится в PSS, то на это дело сделают hotfix.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
04.11.2005, 00:46
    #33361327
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
Mosha[quot backfire]Это вот кто пишет свой custom MDX - тем может оказаться сложнее.

Почему сложнее? Наоборот - мы тут в форуме управились менее чем за 6 часов и проблема решена, а через PSS минимум пару суток, если хотфикс есть, а если нет, то 0/0 суток.
...
Рейтинг: 0 / 0
04.11.2005, 00:49
    #33361329
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
Почему сложнее
Я имел в виду, что кто использует OWC, Excel etc, они даже и не узнают что есть проблема, т.к. у них все будет работать правильно.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
04.11.2005, 04:14
    #33361347
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
Mosha Почему сложнее
Я имел в виду, что кто использует OWC, Excel etc, они даже и не узнают что есть проблема, т.к. у них все будет работать правильно.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

Значит "свои" обслуживаются и тестируются в первую очередь, а free hand MDX это для сумасшедших энтузиастов, которые сами если что до work around вымучают.
...
Рейтинг: 0 / 0
04.11.2005, 04:38
    #33361352
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
backfireЗначит "свои" обслуживаются и тестируются в первую очередь, а free hand MDX это для сумасшедших энтузиастов, которые сами если что до work around вымучают
Уважаемый backfire - прочитайте внимательно мой самый первый ответ в этой ветке, а потом делайте выводы.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
04.11.2005, 04:48
    #33361354
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
Mosha backfireЗначит "свои" обслуживаются и тестируются в первую очередь, а free hand MDX это для сумасшедших энтузиастов, которые сами если что до work around вымучают
Уважаемый backfire - прочитайте внимательно мой самый первый ответ в этой ветке, а потом делайте выводы.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

Моша, извините, если Вы нашли мою шутку неуместной, просто в 2 часа ночи после тяжелого дня - для дипломатии сил нет.
...
Рейтинг: 0 / 0
29.04.2006, 13:25
    #33698991
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
Хочу поднять тему заново - снова стала актуальна.
теперь имеем SSAS2005 SP1 база Adventure Works
приведенный ранее запрос backfire слегка модифицированный
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with
member [Product].[Product Categories].[Road and Mountain] as 
aggregate({[Product].[Product Categories].[Subcategory].&[ 2 ],[Product].[Product Categories].[Subcategory].&[ 1 ]})

select 
	{[Measures].[Customer Count], [Measures].[Internet Order Count]} 
on columns,
	{
	 [Product].[Product Categories].[Category].&[ 1 ],
	 [Product].[Product Categories].[Category].&[ 1 ].children,
	 [Product].[Product Categories].[Road and Mountain],
	 [Product].[Product Categories].[Mountain and Road]
	}
on rows
from [Adventure Works]

теперь работает правильно:

Код: plaintext
1.
2.
3.
4.
5.
		Customer Count	Internet Order Count
Bikes			9,132		15,205
Mountain Bikes		4,089		 4,970
Road Bikes		6,397		 8,068
Touring Bikes		2,143		 2,167
Road and Mountain		8,433		13,038

добавим в условие размеры:

Код: plaintext
where ([Product].[Size Range].&[ 48 - 52  CM])

и удивляемся:

Код: plaintext
1.
2.
3.
4.
5.
		Customer Count	Internet Order Count
Bikes			3,537		3,893
Mountain Bikes		  287		  288
Road Bikes		2,863		3,091
Touring Bikes		  512		  514
 Road and Mountain		6,222		6,758 

еще прикольнее если эти размеры (или что угодно измерения продукт) вытащить на колонки (уж не буду приводить пример).
Короче, закономерности почему такие цифры и так пляшут, я не нашел.
И что раньше Моша говорил, Moshaчто кто использует OWC, Excel etc, они даже и не узнают что есть проблема - узнали, т.к. есть в кубе вычисляемый член по типу [Road and Mountain] и хотят пользователи отсеивать товары еще и по размеру.... :(
как всегда вышло в одном месте подпорку поставили, а в другом обвалилось...
Может я чего-то не понимаю - объясните...
...
Рейтинг: 0 / 0
29.04.2006, 23:57
    #33699426
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
Да, коррида продолжается, либо мы не знаем MDX (а откуда нам его знать, если в BOL шаром покати), либо DC настолько капризен, что даже после SP1, он работает только в солнечную погоду в Сиэттле.
...
Рейтинг: 0 / 0
02.05.2006, 09:35
    #33700872
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
ShIgorМожет я чего-то не понимаю - объясните...
На первый взгляд результаты выглядят завышенные в 2 раза. Правильный ответ 3,111 вместо 6,222. Буду изучать эту проблему подробнее...

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
02.05.2006, 11:17
    #33701106
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
В результате дискуссии на microsoft.public.sqlserver.olap
выяснилось, что, если CM создать на том же уровне, то результат получается правильный


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with
member [Product].[Product Categories].[All].[Bikes].[Road and Mountain] as
aggregate({[Product].[Product Categories].[Subcategory].&[ 2 ],[Product].[Product Categories].[Subcategory].&[ 1 ]})
select
{[Measures].[Customer Count], [Measures].[Internet Order Count]} on columns,
{[Product].[Product Categories].[Category].&[ 1 ],
[Product].[Product Categories].[Category].&[ 1 ].children,
[Product].[Product Categories].[All].[Bikes].[Road and Mountain]
}
on rows
from [Adventure Works]
where ([Product].[Size Range].&[ 48 - 52  CM])
...
Рейтинг: 0 / 0
02.05.2006, 11:26
    #33701138
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
Mosha
На первый взгляд результаты выглядят завышенные в 2 раза
я этого не заметил...
при рассмотрении данных с других сторон (использовать другие аттрибуты вместо размеров, или вообще другие данные) результаты могут быть и похожи на правду, и отличаться в разы, например на моих данных это различие достигает в сотни раз!!!
И еще заметил, если добавить что-то окасающееся продукта на ось с продуктами - ошибка исчезает!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select 
	{[Measures].[Customer Count], [Measures].[Internet Order Count]} 
on columns,
	{
	 [Product].[Product Categories].[Category].&[ 1 ],
	 [Product].[Product Categories].[Category].&[ 1 ].children,
	 [Product].[Product Categories].[Road and Mountain]	
	} 
	* { [Product].[Size].[All Products]}
on rows
from [Adventure Works]
where ([Product].[Size Range].&[ 48 - 52  CM]) 
Код: plaintext
1.
2.
3.
4.
5.
			Customer Count	Internet Order Count
Bikes			All Products	3,537	3,893
Mountain Bikes		All Products	  287	  288
Road Bikes		All Products	2,863	3,091
Touring Bikes		All Products	  512	  514
 Road and Mountain		All Products	3 111	3 379 
...
Рейтинг: 0 / 0
02.05.2006, 11:37
    #33701186
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
2 backfire
У меня CM аггрегирует нескольких производителей и создан на том же уровне, что и сами члены (собственно он в иерархии Производителей один)
Код: plaintext
with member [Продукт].[Производитель].[All].[AggП123] AS Aggregate({[Продукт].[Производитель].&[П1], [Продукт].[Производитель].&[П2], [Продукт].[Производитель].&[П3]})
и все-равно не работет правильно!
...
Рейтинг: 0 / 0
02.05.2006, 12:17
    #33701323
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS 2005: DistinctCount мера и Calculated Member как увязать
Моша, взгляните на сл. запрос

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
with

member [Product].[Product Categories].[Road and Mountain on All Level] as
aggregate({[Product].[Product Categories].[Subcategory].&[ 2 ],[Product].[Product Categories].[Subcategory].&[ 1 ]})

member [Product].[Product Categories].[All Products].[Road and Mountain on Category Level] as
aggregate({[Product].[Product Categories].[Subcategory].&[ 2 ],[Product].[Product Categories].[Subcategory].&[ 1 ]})

member [Product].[Product Categories].[Category].&[ 1 ].[Road and Mountain on Subcategory Level] as
aggregate({[Product].[Product Categories].[Subcategory].&[ 2 ],[Product].[Product Categories].[Subcategory].&[ 1 ]})

member [Product].[Product Categories].[Subcategory].&[ 1 ].[Road and Mountain on Product Level] as
aggregate({[Product].[Product Categories].[Subcategory].&[ 2 ],[Product].[Product Categories].[Subcategory].&[ 1 ]})

member [Product].[Product Categories].[Mountain Bikes and Road- 750  on All Level] as
aggregate({[Product].[Product Categories].[Subcategory].&[ 1 ], [Product].[Product Categories].[Product Name].&[ 605 ]})

member [Product].[Product Categories].[All Products].[Mountain Bikes and Road- 750  on Category Level] as
aggregate({[Product].[Product Categories].[Subcategory].&[ 1 ], [Product].[Product Categories].[Product Name].&[ 605 ]})

member [Product].[Product Categories].[Category].&[ 1 ].[Mountain Bikes and Road- 750  on Subcategory Level] as
aggregate({[Product].[Product Categories].[Subcategory].&[ 1 ], [Product].[Product Categories].[Product Name].&[ 605 ]})

member [Product].[Product Categories].[Subcategory].&[ 1 ].[Mountain Bikes and Road- 750  on Product Level] as
aggregate({[Product].[Product Categories].[Subcategory].&[ 1 ], [Product].[Product Categories].[Product Name].&[ 605 ]})

select
{[Measures].[Customer Count], [Measures].[Internet Order Count]} on columns,
{[Product].[Product Categories].[Category].&[ 1 ],
[Product].[Product Categories].[Category].&[ 1 ].children,
[Product].[Product Categories].[Road and Mountain on All Level],
[Product].[Product Categories].[All Products].[Road and Mountain on Category Level],
[Product].[Product Categories].[Category].&[ 1 ].[Road and Mountain on Subcategory Level],
[Product].[Product Categories].[Subcategory].&[ 1 ].[Road and Mountain on Product Level],

[Product].[Product Categories].[Product Name].&[ 594 ],
[Product].[Product Categories].[Product Name].&[ 605 ],
[Product].[Product Categories].[Mountain Bikes and Road- 750  on All Level],
[Product].[Product Categories].[All Products].[Mountain Bikes and Road- 750  on Category Level],
[Product].[Product Categories].[Category].&[ 1 ].[Mountain Bikes and Road- 750  on Subcategory Level],
[Product].[Product Categories].[Subcategory].&[ 1 ].[Mountain Bikes and Road- 750  on Product Level]
}
on rows
from [Adventure Works]
where ([Product].[Size Range].&[ 48 - 52  CM])

Правильный ответ для [Mountain Bikes and Road-750 ...] составляет 649 (проверяем T-SQL)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT COUNT(DISTINCT dbo.FactInternetSales.CustomerKey) AS CustomerCount
FROM dbo.FactInternetSales 
INNER JOIN dbo.DimProduct 
	ON dbo.FactInternetSales.ProductKey = dbo.DimProduct.ProductKey 
INNER JOIN dbo.DimProductSubcategory 
	ON dbo.DimProduct.ProductSubcategoryKey = dbo.DimProductSubcategory.ProductSubcategoryKey 
INNER JOIN dbo.DimProductCategory 
	ON dbo.DimProductSubcategory.ProductCategoryKey = dbo.DimProductCategory.ProductCategoryKey
WHERE ((dbo.DimProductSubcategory.ProductSubcategoryKey =  1 ) 
		OR (dbo.DimProduct.ProductKey =  605 )) 
		AND (dbo.DimProduct.SizeRange = '48-52 CM')
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSAS 2005: DistinctCount мера и Calculated Member как увязать / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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