powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / NON EMPTY выбрасывает лишние строки (из разряда "мистики")
14 сообщений из 14, страница 1 из 1
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
    #38280669
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
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
    #38280821
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
Игорь Бобак,

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

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

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

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

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

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

а вы не задумывались почему 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
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
    #38280940
ORа вы не задумывались почему Microsoft сделал и браузер в студии и клиента в экселе либо через subselect, либо через сессионные сеты и мемберы?
А чтобы Вы были в курсе, если в контексте выбран один мембер, то ексель 2010 запихивает его в WHERE, а не в subselect.
В отличие от них мы - гибкие, и можем переделать. А вот они вас слушать не будут.

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

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

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

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

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

да есть, но не конкретно у меня, а у админов, а они пальцем шевелить не станут.
...
Рейтинг: 0 / 0
NON EMPTY выбрасывает лишние строки (из разряда "мистики")
    #39831693
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
14 сообщений из 14, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / NON EMPTY выбрасывает лишние строки (из разряда "мистики")
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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