Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
Добрый день! Есть следующая задача: нужно создать единый набор данных по продажам в разрезе по времени.
Тип набора который нужно создать: { [Дата].[1959], [Дата].[1960].[Февраль] } - нужно вывести данные по продажам за 1959 год одной строкой плюс второй стройкой вывести данные за февраль 1960 года.
Пробовал объединить их , но выдает ошибку о разных уровнях иерархии, может кто то сталкивался с такой задачей помогите разобраться что делаю не так
31 июл 18, 13:28    [21617793]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2095
Сергей_1991,

иерархии Дата.ГМД нет? создай!
не хочешь, тогда

with member [Дата].[Год].[Февраль1960] as [Дата].[1960].[Февраль]
select { [Дата].[Год].[1959], [Дата].[Год].[Февраль1960] } on columns
from ...
31 июл 18, 14:05    [21618008]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
ShIgor, Добрый день!
Условия немного изменились, и вариант с временем не подходит.
with
member [Компания новая структура].[Филиал].[Мебель] as [Компания новая структура].[Регион].&[Мебель]

MEMBER [Measures].[Proc] AS
[Measures].[ТО]/[Measures].[ТО План]

SELECT
{([Компания новая структура].[Филиал].[Мебель], [Компания новая структура].[FilialSortOrder 1].[FilialSortOrder 1].ALLMEMBERS*[Компания новая структура].[Филиал].[Филиал].ALLMEMBERS)} on rows,
{[Measures].[ТО План],[Measures].[ТО]} on columns


FROM [Модель]
where (
StrToMember('[Дата].[Год месяц день].[Дата].&[' + format(Now(), "yyyy-MM-dd") + 'T00:00:00]').Parent
)

Этот запрос выдает ошибку, как сделать так , чтобы объединить результат конкретно для региона мебель и для филиалов в одном запросе?

1 авг 18, 13:55    [21621160]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2095
Сергей_1991,

{
{[Компания новая структура].[FilialSortOrder 1].[FilialSortOrder 1].ALLMEMBERS} *
{[Компания новая структура].[Филиал].[Мебель], [Компания новая структура].[Филиал].[Филиал].ALLMEMBERS}
)
1 авг 18, 16:34    [21621819]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 30393
Блог
Сергей_1991,

зачем в одном запросе?
напишите 2 и покажите результат в RS или другом клиенте
1 авг 18, 17:26    [21621961]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
Критик, добрый день!
Дело в том, что нужно , чтобы данные были в одном запросе , так как дальше этот запрос будет использоваться для отчета SSRS, плюс еще нужно это все дело потом отсортировать по убыванию выполнения плана. НА текущий момент это реализовано двумя запросами, но боссам не подходит. По этому приходиться ломать голову
2 авг 18, 10:14    [21623491]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
ShIgor,
спасибо, это помогло, но остается все равно проблема того, что следующее условие member [Компания новая структура].[Филиал].[Мебель] as [Компания новая структура].[Регион].&[Мебель] возвращает мне данные не региона, а данные по филиалам , которые находятся в этом регионе, а мне нужно чтобы вернуло именно данные по региону. Что я делаю не так? Или может мне нужно изменить данные по филиалам и привести их к уровню региона?
2 авг 18, 15:38    [21625179]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2095
Сергей_1991,

не.. давай на примере велозавода..

смотри, запрос
select 
  { [Measures].[Reseller Sales Amount] } on columns, 
  non empty { [Sales Territory].[Sales Territory Country].[Sales Territory Country] ) } on rows 
from
  [Adventure Works] 

разбивает меру по странам
Sales Territory CountryReseller Sales Amount
Australia1594335.38
Canada14377925.60
France4607537.94
Germany1983988.04
United Kingdom4279008.83
United States53607801.21


второй
select
  { [Measures].[Reseller Sales Amount] } on columns, 
  non empty { [Reseller].[Reseller].[Reseller] } on rows 
from
  [Adventure Works]

разбивает ту же меру по реселлерам
ResellerReseller Sales Amount
A Bike Store85177.08
A Great Bicycle Company9055.29
A Typical Bike Shop83457.11
Acceptable Sales & Service1258.38
Accessories Network2165.793
и т.д.


теперь, хочу чтоб "A Bike Store" оказался в первом запросе
with member [Sales Territory].[Sales Territory Country].[A Bike Store] as ([Reseller].[Reseller].[A Bike Store],[Sales Territory].[Sales Territory Country].[All])
select 
  { [Measures].[Reseller Sales Amount] } on columns, 
  non empty { [Sales Territory].[Sales Territory Country].[A Bike Store], ([Sales Territory].[Sales Territory Country].[Sales Territory Country] ) } on rows 
from 
  [Adventure Works] 

и норм все.
Country/ResellerReseller Sales Amount
A Bike Store85177.08
Australia1594335.38
Canada14377925.60
France4607537.94
Germany1983988.04
United Kingdom4279008.83
United States53607801.21
3 авг 18, 01:18    [21626667]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
ShIgor,
добрый день! В моем случаи нужно , чтобы на пример страна Австралия попала в список с данными по байкам
3 авг 18, 12:51    [21628047]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
В список по реселлерам
3 авг 18, 12:55    [21628075]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2095
Сергей_1991,

(лето.. пятница.. зачем думать)

with member [Reseller].[Reseller].[Австралия это не только страна, но еще и континент] as ([Reseller].[Reseller].[All], [Sales Territory].[Sales Territory Country].[Australia])
select 
  { [Measures].[Reseller Sales Amount] } on columns, 
  non empty { [Reseller].[Reseller].[Австралия это не только страна, но еще и континент], ([Reseller].[Reseller].[Reseller] ) } on rows 
from 
  [Adventure Works]


Reseller/CountryReseller Sales Amount
Австралия это не только страна. но еще и континент1594335.38
A Bike Store85177.08
A Great Bicycle Company9055.29
A Typical Bike Shop83457.11
Acceptable Sales & Service1258.38
Accessories Network2165.79
Acclaimed Bicycle Company7300.83
Ace Bicycle Supply3749.13
Action Bicycle Specialists321752.84
и т.д.
3 авг 18, 13:38    [21628276]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
ShIgor
Сергей_1991,

(лето.. пятница.. зачем думать)


Поверти , я произвел обратную операцию, до того, как написать Вам сообщение, но в итого все равно получаю разбивку на несколько филиалов,а не единый регион. Может быть проблема в том , что я использую одну и ту же иерархию, для получения набора, так как в вашем случаи это разные иерархии
3 авг 18, 13:49    [21628327]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2095
Сергей_1991,

в смысле разные иерархи одного измерения..

не проблема
with member [Sales Territory].[Sales Territory Country].[Пасифик] as ([Sales Territory].[Sales Territory Group].&[Pacific],[Sales Territory].[Sales Territory Country].[All])
member [Sales Territory].[Sales Territory Country].[Еуропе] as ([Sales Territory].[Sales Territory Group].&[Europe],[Sales Territory].[Sales Territory Country].[All])
select 
  { [Measures].[Reseller Sales Amount] } on columns, 
  non empty { [Sales Territory].[Sales Territory Country].[Пасифик], [Sales Territory].[Sales Territory Country].[Еуропе], ([Sales Territory].[Sales Territory Country].[Sales Territory Country] )  } on rows 
from 
  [Adventure Works]


Group/CountryReseller Sales Amount
Пасифик1594335.38
Еуропе10870534.80
Australia1594335.38
Canada14377925.60
France4607537.94
Germany1983988.04
United Kingdom4279008.83
United States53607801.21
3 авг 18, 14:03    [21628369]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
ShIgor,

Спасибо большое, получилось, я понял почему у меня оно не выводилось, из за того что в некоторых значения у меня стоит NULL данные по продажам тоже становятся NULL. А у меня стоял фильтр , чтобы такие значения убирать, извините , что отнял у Вас столько времени.
3 авг 18, 14:21    [21628433]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
Странно, но продажи почему то не хотят выводиться (
3 авг 18, 14:31    [21628471]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
ShIgor,
Еще вопрос есть я убираю значения NULL c помощью nonempty, но мне все равно по новой созданной мере с регион в строке по региону значение стоит NULL. Что я делаю не так?
7 авг 18, 11:07    [21632597]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2095
Сергей_1991,

nonempty и non empty разные вещи. не видя запроса не понятно о чем речь.
смоделируете ту же ситуацию на велозаводе, публикуйте запрос.
7 авг 18, 12:07    [21632698]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
ShIgor
Сергей_1991,

в смысле разные иерархи одного измерения..

не проблема
with member [Sales Territory].[Sales Territory Country].[Пасифик] as ([Sales Territory].[Sales Territory Group].&[Pacific],[Sales Territory].[Sales Territory Country].[All])
member [Sales Territory].[Sales Territory Country].[Еуропе] as ([Sales Territory].[Sales Territory Group].&[Europe],[Sales Territory].[Sales Territory Country].[All])
select 
  { [Measures].[Reseller Sales Amount] } on columns, 
  non empty { [Sales Territory].[Sales Territory Country].[Пасифик], [Sales Territory].[Sales Territory Country].[Еуропе], ([Sales Territory].[Sales Territory Country].[Sales Territory Country] )  } on rows 
from 
  [Adventure Works]


Group/CountryReseller Sales Amount
Пасифик1594335.38
Еуропе10870534.80
Australia1594335.38
Canada14377925.60
France4607537.94
Germany1983988.04
United Kingdom4279008.83
United States53607801.21


Покажу на этом примере, построил я запрос по данному принципу, но получил в графе Пасифик NULL, так как напрbмер по USA значение продаж стоит NULL. В случаи когда я ставлю non empty у меня пропадает строка с Пасифик
7 авг 18, 12:19    [21632720]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2095
Сергей_1991,

другими словами если в оригинале пусто то отобразить 0?

with 
member [Sales Territory].[Sales Territory Country].[Пасифик] as ([Sales Territory].[Sales Territory Group].&[Pacific],[Sales Territory].[Sales Territory Country].[All])
member [Sales Territory].[Sales Territory Country].[Еуропе] as ([Sales Territory].[Sales Territory Group].&[Europe],[Sales Territory].[Sales Territory Country].[All])
member [Sales Territory].[Sales Territory Country].[Пустышка из группы] as iif(isempty(([Sales Territory].[Sales Territory Group].&[NA],[Sales Territory].[Sales Territory Country].[All])), 0, null)
member [Sales Territory].[Sales Territory Country].[Пустышка] as iif(isempty([Sales Territory].[Sales Territory Country].&[NA]), 0, null)
select 
  { [Measures].[Reseller Sales Amount] } on columns, 
  non empty { [Sales Territory].[Sales Territory Country].[Пасифик], [Sales Territory].[Sales Territory Country].[Еуропе], [Sales Territory].[Sales Territory Country].[Пустышка из группы], [Sales Territory].[Sales Territory Country].[Пустышка], ([Sales Territory].[Sales Territory Country].[Sales Territory Country] )  } on rows 
from 
  [Adventure Works]
7 авг 18, 13:47    [21632859]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
ShIgor
Сергей_1991,

другими словами если в оригинале пусто то отобразить 0?

Нет , нужно для пасифик отобразить сумму его нижних иерархий, но при этом нужно как то выбросить значения NULL с нижних иерархий ибо тогда пасифик возвращает тоже NULL.
Иерархия по компании выглядит следующим образом Компания-Представительства-Регионы-Филиалы. Продажи и планы хранятся на уровне Филиалов, но для Региона "Мебель" - информацию нужно вывести не по филиалам , а для Региона единой строкой. Но Регион "Мебель" разбивается на 3 филиала -Мебель Одесса, Мебель Западная, Мебель Киев. Так вот для Мебель Одесса (1000$) и для Мебель Киев(4500$) продажи существуют, а для Мебель Западная стоит значение NULL. Так вот , мне нужно получить единую строку по Мебели со значением 5500$ + плюс информацию по остальным филиалам.
7 авг 18, 14:26    [21632949]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2095
Сергей_1991,

Вы хотите меня убедить, что у Вас "кривые" данные?

Регион Мебель                      NULL
|- Филиал Мебель Одесса 1000
|- Филиал Мебель Западная NULL
|- Филиал Мебель Киев 4500

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

либо это разные группы мер
7 авг 18, 14:59    [21632992]     Ответить | Цитировать Сообщить модератору
 Re: Создание набора данных с разных иерархий  [new]
Сергей_1991
Member

Откуда:
Сообщений: 49
ShIgor
Сергей_1991,

Вы хотите меня убедить, что у Вас "кривые" данные?

Регион Мебель                      NULL
|- Филиал Мебель Одесса 1000
|- Филиал Мебель Западная NULL
|- Филиал Мебель Киев 4500

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

либо это разные группы мер


У Вас есть возможность перевести переписку в скайп например, чтобы я мог более детально рассказать и показать, а то мне кажется, что я чего то не понимаю (мой скайп sergey.1991 Сергей Вакарчук)
7 авг 18, 15:07    [21633001]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить