Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / NON EMPTY выбрасывает лишние строки (из разряда "мистики") / 14 сообщений из 14, страница 1 из 1
30.05.2013, 18:11
    #38280669
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
AS 2008R2, база - тривиальная: взято от заказчика, замылили, вырезали все лишнее - оставив только одну группу мер, подмножество строк, и одно измерение. Бекап тут, весит 3 КБ

Странность в том, что вот такой банальный запрос

Код: sql
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.
WITH
MEMBER [Measures].[Test1] AS
	1
	,FORMAT_STRING = '#,0.00'
	,SOLVE_ORDER = 10
SELECT
	{
	{[Measures].[Test1]}
	}  ON COLUMNS,
	
{
	Distinct(Hierarchize(
		{[Product].[Group].[All].&[SPECIAL Group 11],
		[Product].[Group].[All].&[SPECIAL Group 17],
		[Product].[Group].[All].&[SPECIAL Group 19],
		[Product].[Group].[All].&[SPECIAL Group 4],
		[Product].[Group].[All].&[SPECIAL Group 51],
		[Product].[Group].[All].&[SPECIAL Group 52],
		[Product].[Group].[All].&[SPECIAL Group 54],
		[Product].[Group].[All].&[SPECIAL Group 59],
		[Product].[Group].[All].&[SPECIAL Group 63],
		[Product].[Group].[All].&[SPECIAL Group 64],
		[Product].[Group].[All].&[SPECIAL Group 67],
		[Product].[Group].[All].&[SPECIAL Group 7]}
	))
	}  ON ROWS
FROM [BI]
WHERE
(
	[Product].[Brand].[All].&[brand 5]
)



работает на ура - выдавая то, что на картинке.

Но если доставить NON EMPTY на строках
Код: sql
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.
WITH
MEMBER [Measures].[Test1] AS
	1
	,FORMAT_STRING = '#,0.00'
	,SOLVE_ORDER = 10
SELECT
	{
	{[Measures].[Test1]}
	}  ON COLUMNS,
	
NON EMPTY {
	Distinct(Hierarchize(
		{[Product].[Group].[All].&[SPECIAL Group 11],
		[Product].[Group].[All].&[SPECIAL Group 17],
		[Product].[Group].[All].&[SPECIAL Group 19],
		[Product].[Group].[All].&[SPECIAL Group 4],
		[Product].[Group].[All].&[SPECIAL Group 51],
		[Product].[Group].[All].&[SPECIAL Group 52],
		[Product].[Group].[All].&[SPECIAL Group 54],
		[Product].[Group].[All].&[SPECIAL Group 59],
		[Product].[Group].[All].&[SPECIAL Group 63],
		[Product].[Group].[All].&[SPECIAL Group 64],
		[Product].[Group].[All].&[SPECIAL Group 67],
		[Product].[Group].[All].&[SPECIAL Group 7]}
	))
	}  ON ROWS
FROM [BI]
WHERE
(
	[Product].[Brand].[All].&[brand 5]
)



, то не возвращается одна строка - SPECIAL Group 7.

Дименшн - простой как дверь: один ключевой атрибут, два неключевых - связанных с ключем.
В базе данных есть 9 строк где brand 5 и SPECIAL Group 7
Код: sql
1.
2.
3.
select * from  dbo.sp_prod
where PGROUP_NAME = 'special group 7'
and BRAND_NAME = 'brand 5'



то есть, autoexists тут не должен выбрасывать SPECIAL Group 7 ну никак, потому что и товары такие есть, и тупой калк (=1) ну явно не null.

Если со строк снять NON EMPTY а на столбцы его положить, то там будет еще третий результат.
Если на строках начать выбирать другие мемберы в иерархии, то кроме special group 7 будут еще пропадать другие мемберы...

Короче, полная мистика.

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

У кого есть идеи, что с этим можно делать? куда копать, и что заказчику посоветовать? Спасибо наперед.
...
Рейтинг: 0 / 0
30.05.2013, 20:52
    #38280821
OR
OR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
Игорь Бобак,

Интересный случай :-)
Ну с "Если со строк снять NON EMPTY а на столбцы его положить, то там будет еще третий результат." - тут понятно, NON EMPTY выражение прячет строку/столбец если ВСЕ ячейки там пустые
А вот то что правильно начинает работать если убрать Hierarchize... - вот это пока непонятно совсем почему :-)
И кстати если [Product].[Group].[All].&[SPECIAL Group 63] и [Product].[Group].[All].&[SPECIAL Group 7] поменять местами - то пропадет уже группа 63, а 7 - появится. Чудеса. Имхо, дело в ненатуральной иерархии, но как исправить, пока нет идей.
...
Рейтинг: 0 / 0
30.05.2013, 21:03
    #38280827
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
там еще могу добавить. если сделать иерархию "группа-продукт", процесснуть куб, потом в отчете начать раскрывать группы (чтобы под ними продукты появлялись), то те группы, которые ниже, и которые НИКАКОГО ОТНОШЕНИЯ не имеют к раскрывшимся группам, начинают то показываться, то скрываться. При том ОТ ФОНАРЯ.

и не важно какая мера - физическая или калк (я собственно вначале подумал что что-то не так с группой мер, но когда
поставил калк - увидел что то же самое).

и еще одно. если вместо where условия подставить subcube (даже с одним элементом) - то все начинает работать правильно.

Мы конечно можем научить наш Business Analysis Tool делать всегда subcube если на уровне сервера стоит опция "генерировать всегда подкубы", но это как-то тупо: подгонять клиента под баги сервера, чтобы эти баги обходить. А кто его знает, какие баги сервер может с подкубами потом выкинуть на этой базе?

Короче, смотрю я на это все, и немножко себя чувствую идиотом...
...
Рейтинг: 0 / 0
30.05.2013, 22:23
    #38280867
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
Игорь Бобак,

По таблице видно, что возвращается 10 строк. Уберите SOLVE_ORDER = 10 и посмотрите, что получится.
...
Рейтинг: 0 / 0
31.05.2013, 00:01
    #38280939
OR
OR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
Игорь Бобак,

а вы не задумывались почему Microsoft сделал и браузер в студии и клиента в экселе либо через subselect, либо через сессионные сеты и мемберы?
на велозаводе проблема также воспроизводится,
select
{[Measures].[Internet Sales Amount]} on 0,
non empty
hierarchize
({
[Product].[Subcategory].&[18],
[Product].[Subcategory].&[27],
[Product].[Subcategory].&[6],
[Product].[Subcategory].&[7],
[Product].[Subcategory].&[20],
[Product].[Subcategory].&[34],
[Product].[Subcategory].&[35],
[Product].[Subcategory].&[22],
[Product].[Subcategory].&[14],
[Product].[Subcategory].&[25]
}) on 1
from [Adventure Works]
where ([Product].[Product Line].&[M])

причем если сет просто вынести в именованый сет - то работает правильно, ну и так как вы сказали - тоже.
Так что думаю - дело не в проблемах базы, а в нюансах работы с ненатуральной иерархией.
Наверное выбирали меньшее зло, чтобы хоть при каких то подходах ВСЕГДА работало правильно.
У нас например всегда генерируются Set при множественном выборе.

Не помню точно, но при подходе с subselect есть тоже нюансы какие то, что там было с дефолтными мемберами в кубе.
...
Рейтинг: 0 / 0
31.05.2013, 00:04
    #38280940
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
ORа вы не задумывались почему Microsoft сделал и браузер в студии и клиента в экселе либо через subselect, либо через сессионные сеты и мемберы?
А чтобы Вы были в курсе, если в контексте выбран один мембер, то ексель 2010 запихивает его в WHERE, а не в subselect.
В отличие от них мы - гибкие, и можем переделать. А вот они вас слушать не будут.

Но всеравно суть остается - не могу понять такого поведения...
...
Рейтинг: 0 / 0
31.05.2013, 00:34
    #38280959
OR
OR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
Игорь Бобак,

да, забыл я написать что это только про мультиселект
...
Рейтинг: 0 / 0
31.05.2013, 01:54
    #38280997
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
ORда, забыл я написать что это только про мультиселект
У нас мультиселект тоже идет в подкуб.
здесь analysis глючит именно на комбинации where + autoexists.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.06.2019, 12:25
    #39831587
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
Игорь Бобак,

А воз и ныне там!
SSAS 2016, комбинация 4х условий (NON EMPTY, Herarchize, Мультиселект, связанный атрибут в контексте) приводят к подобной аномалии. Как обратиться в MS чтоб поправили-то наконец?
MS Connect убрали, да и стучаться похоже бесполезно.
...
Рейтинг: 0 / 0
28.06.2019, 14:10
    #39831658
StarikNavy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
а это не тот случай что NON EMPTY работает для меры по умолчанию, и чтобы корретно надо использовать NoEmty с указанием кокретной меры?
...
Рейтинг: 0 / 0
28.06.2019, 14:23
    #39831673
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
ShIgor,

если у вас поддержка MS есть, то тикет зарегистрируйте и периодически пинайте
...
Рейтинг: 0 / 0
28.06.2019, 15:10
    #39831691
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
StarikNavy,

нет, NON EMPTY - это ключевое слово перед осью, NonEmpty(..) это функция.
...
Рейтинг: 0 / 0
28.06.2019, 15:11
    #39831692
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
Критик,

да есть, но не конкретно у меня, а у админов, а они пальцем шевелить не станут.
...
Рейтинг: 0 / 0
28.06.2019, 15:15
    #39831693
Alex_496
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
ShIgorИгорь Бобак,

А воз и ныне там!
SSAS 2016, комбинация 4х условий (NON EMPTY, Herarchize, Мультиселект, связанный атрибут в контексте) приводят к подобной аномалии. Как обратиться в MS чтоб поправили-то наконец?
MS Connect убрали, да и стучаться похоже бесполезно.

Написать сюда:
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/home?forum=sqlanalysisservices&filter=alltypes&sort=lastpostdesc
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / NON EMPTY выбрасывает лишние строки (из разряда "мистики") / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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