powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX предыдущий элемент по множеству
10 сообщений из 10, страница 1 из 1
MDX предыдущий элемент по множеству
    #39829942
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте господа,

Есть измерение дат [Value Date].[Date].[All].Children -- дни.

Есть некоторое множество (подмножество этих дат). Например это рабочие дни в данной области.

Код: sql
1.
2.
CREATE SET CURRENTCUBE.PlatformTradingDates
AS EXISTS([Value Date].[Date].[All].Children,,"Platform Trading Dates");


Есть некий показатель X.

Нужно найти разницу между значением показателя X в текущий день и предыдущий рабочий день (предыдущий согласно множеству PlatformTradingDates). Значения в дни, не входящий в множество не учитываются.

Известно, что вне этого множества Х равен NULL.

Есть идеи, как написать MDX для такого показателя?

В разделе вычисления куба.
...
Рейтинг: 0 / 0
MDX предыдущий элемент по множеству
    #39829949
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

признак "рабочий день" в календаре
и по условию существования этого признака PrevMember ?
...
Рейтинг: 0 / 0
MDX предыдущий элемент по множеству
    #39829961
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarikNavya_voronin,

признак "рабочий день" в календаре
и по условию существования этого признака PrevMember ?

Заранее вычислить не получиться.

Дело в том, что "рабочие дни", они не известны. Это некое виртуальное понятие, которая значит, что в этот день работали. Они определяются по признаку есть хотя бы одна запись в запись некоей группе мер. И это могут быть разные множества для разных областей.

Есть измерение даты и в нем все календарные дни. Есть подмножество дат. Вот как на подмножестве взять предыдущий.
...
Рейтинг: 0 / 0
MDX предыдущий элемент по множеству
    #39829986
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

почему бы сначала на уровне реляционки не посчитать какие дни рабочие в зависимости от "работали ли в некоей группе мер"
...
Рейтинг: 0 / 0
MDX предыдущий элемент по множеству
    #39830019
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по моему где-то здесь было если не ошибаюсь, я писал что-то подобное в ABC анализе
(логистика, а не бухгалтерия с их ActivityBasedCost) где во временном динамическом
именном наборе на заднем плане (как якорная мера) rank
(у тебя будет rank-1, с проверкой не является-ли начальным элементом) вычислялся
в текущем контексте для нахождения позиции элемента в одном наборе над другим
(через subset, относительная позиция) для последующих вычислений над ним.
...
Рейтинг: 0 / 0
MDX предыдущий элемент по множеству
    #39830021
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но естественно тормоза жуткие из-за вложенных вычислений..
так что только на относительно небольших наборах (не сотни тыс.)
...
Рейтинг: 0 / 0
MDX предыдущий элемент по множеству
    #39830024
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_496,

Я сделал именно такую группу мер. Теперь по этой группе мер надо взять предыдущий.
...
Рейтинг: 0 / 0
MDX предыдущий элемент по множеству
    #39830026
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

ну а дальше - пробовать также на уровне реляционки на предыдущий раб.день посчитать(подтянуть) какие нужно показатели. Это может быть SQL-представление

Проверять на больших объемах, что эффективнее: MDX или реляционный источник
...
Рейтинг: 0 / 0
MDX предыдущий элемент по множеству
    #39830197
grAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

Такие мысли
Код: sql
1.
2.
3.
4.
5.
6.
7.
WITH 
  SET PlatformTradingDates AS EXISTS([Date].[Date].[All].Children,,"Internet Sales")
MEMBER [XПред] AS GENERATE(PlatformTradingDates as t, iif(t.CurrentOrdinal = t.Count-1, [Measures].[Internet Sales Amount], NULL))
SELECT 
 {[Measures].[XПред],[Measures].[Internet Sales Amount]} on 0,
 {PlatformTradingDates} on 1
FROM [Adventure Works]
...
Рейтинг: 0 / 0
MDX предыдущий элемент по множеству
    #39830227
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
with
set [2 мес в году] as
	{
	[Date].[Calendar].[All].&[2005].&[2005]&[1].&[2005]&[1].&[2005]&[1], 
	[Date].[Calendar].[All].&[2005].&[2005]&[1].&[2005]&[2].&[2005]&[6],
	[Date].[Calendar].[All].&[2006].&[2006]&[1].&[2006]&[1].&[2006]&[1], 
	[Date].[Calendar].[All].&[2006].&[2006]&[1].&[2006]&[2].&[2006]&[6],
	[Date].[Calendar].[All].&[2007].&[2007]&[1].&[2007]&[1].&[2007]&[1], 
	[Date].[Calendar].[All].&[2007].&[2007]&[1].&[2007]&[2].&[2007]&[6],
	[Date].[Calendar].[All].&[2008].&[2008]&[1].&[2008]&[1].&[2008]&[1], 
	[Date].[Calendar].[All].&[2008].&[2008]&[1].&[20087]&[2].&[2008]&[6]
	}
member [Measures].[Предыдущий] as
	iif(rank((existing [2 мес в году]).item(0), [2 мес в году]) = 1, 'n/a',
	[2 мес в году].item(rank((existing [2 мес в году]).item(0), [2 мес в году])-2).name)
member [Measures].[Следующий] as
	iif(rank((existing [2 мес в году]).item(0), [2 мес в году]) >= [2 мес в году].count, 'n/a',
	[2 мес в году].item(rank((existing [2 мес в году]).item(0), [2 мес в году])).name)
select
	{ [Measures].[Предыдущий], [Measures].[Следующий] } on 0,
	{ [2 мес в году] } on 1
from 
	[Sales Summary]



Предыдущий СледующийJanuary 2005 n/a June 2005June 2005 January 2005 January 2006January 2006 June 2005 June 2006June 2006 January 2006 January 2007January 2007 June 2006 June 2007June 2007 January 2007 January 2008January 2008 June 2007 n/a
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX предыдущий элемент по множеству
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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