Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / как получить 0 в прешествующей истории по товару до даты его появления / 4 сообщений из 4, страница 1 из 1
30.12.2005, 07:54
    #33465273
Нэш
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить 0 в прешествующей истории по товару до даты его появления
Доброе время суток всем и с наступающим Новым годом!
Борюсь с такой задачкой - надо получить 0 в прешествующей истории по товару до даты его появления.MS AS 2000(SP3)-Таблица фактов содержит историю остатков по товарам (иерархическое измерение) на дату, так вот когда появляется новый товар, то показать его с даты поступления нет проблем, даже если есть пробелы далее, берем с преведущей даты, на уровень по дате выводим последнее значение в уровне, т.е. неделя закончилась на ее уровень отобразили остаток на воскресенье, месяц законцился - за последний день месяца и так далее, а вот за преведущий период косяк, при анализе функцией IsEmpty выводит 0 только на первые 2 недели, а дальше пришит #ERR. Как считаем-
Iif(IsLeaf([Дата].CurrentMember),
Iif(IsEmpty(([Дата].CurrentMember,[Ассортимент].CurrentMember,[Measures].[OstCur])),
Iif(IsEmpty(([Дата].PrevMember,[Ассортимент].CurrentMember,[Measures].[Ost])),0,([Дата].PrevMember,[Ассортимент].CurrentMember,[Measures].[Ost])),([Дата].CurrentMember,[Ассортимент].CurrentMember,[Measures].[OstCur])),
([Дата].LastChild,[Ассортимент].CurrentMember,[Measures].[Ost]))
IsEmpty ставили и в последнем выражении и ко всему выражению, ничего не помогло.
...
Рейтинг: 0 / 0
30.12.2005, 10:50
    #33465496
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить 0 в прешествующей истории по товару до даты его появления
SUM(TAIL(FILTER(CrossJoin({[Measures].[Runfmor]},Descendants([day1].currentmember,
[day1].levels(1))),[Measures].[Runfmor] <> 0),1))

Это считает остаток на конец выбранного периода, посмотри может поможет.
Dim (day1) это не иерархичное измерение а просто все даты в столбец. С иерархией времени могут быть проблемы.
[Measures].[Runfmor] - это остаток
...
Рейтинг: 0 / 0
30.12.2005, 12:09
    #33465704
Нэш
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить 0 в прешествующей истории по товару до даты его появления
OLAPMASTERSUM(TAIL(FILTER(CrossJoin({[Measures].[Runfmor]},Descendants([day1].currentmember,
[day1].levels(1))),[Measures].[Runfmor] <> 0),1))

Спасибо, но не проходит, на конец года выдает общую сумму, а по уровням пусто. А что делает функция TAIL?
...
Рейтинг: 0 / 0
10.01.2006, 10:14
    #33473483
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить 0 в прешествующей истории по товару до даты его появления
Нэш OLAPMASTERSUM(TAIL(FILTER(CrossJoin({[Measures].[Runfmor]},Descendants([day1].currentmember,
[day1].levels(1))),[Measures].[Runfmor] <> 0),1))

Спасибо, но не проходит, на конец года выдает общую сумму, а по уровням пусто. А что делает функция TAIL?

TAIL
Returns a subset from the end of a set.
Возвращает последнее подмножество из множества.

[day1] это не иерархия времени а просто один уровень по датам типа 20,06,2005 и т.д. если работать с иерархией будут проблемы надо пудет понять для какого уровня тебе снимать последний элемент. Так что Ты сделай у иерархии времени на последмен уровне (где конкретная дата) ей сделай свойство ее же саму (timestamp) ит по ней построй виртуальное измерение дат без иерархии и долно работать.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / как получить 0 в прешествующей истории по товару до даты его появления / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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