powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / как получить 0 в прешествующей истории по товару до даты его появления
4 сообщений из 4, страница 1 из 1
как получить 0 в прешествующей истории по товару до даты его появления
    #33465273
Нэш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток всем и с наступающим Новым годом!
Борюсь с такой задачкой - надо получить 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
как получить 0 в прешествующей истории по товару до даты его появления
    #33465496
OLAPMASTER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SUM(TAIL(FILTER(CrossJoin({[Measures].[Runfmor]},Descendants([day1].currentmember,
[day1].levels(1))),[Measures].[Runfmor] <> 0),1))

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

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


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