Проверенные методики IBM Cognos

Использование функции periodsToDate в IBM Cognos 10 Report Studio для вычисления промежуточных сумм в OLAP

Продукт(ы): IBM Cognos 10. Область применения: отчетность

Comments

Серия контента:

Этот контент является частью # из серии # статей: Проверенные методики IBM Cognos

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Проверенные методики IBM Cognos

Следите за выходом новых статей этой серии.

Назначение

В этой статье описывается использование многомерной функции periodsToDate для вычисления промежуточной суммы в источниках данных при аналитической обработке в режиме реального времени (OLAP).

Применимость

Хотя приемы, рассматриваемые в этой статье, могут быть применимы также к версиям IBM Cognos 8.4 и IBM Cognos 8.4.1. данный документ проверен для следующей версии:

  • IBM Cognos 10.

Предостережения

Данная методика была создана для проверки концепции. Любую реализацию какой-либо части данной методики необходимо тщательно проверять перед внедрением в эксплуатацию.

Функция periodsToDate

Функция periodsToDate возвращает набор элементов с общим родителем, находящихся на том же уровне, что и данный элемент, в соответствии с ограничениями заданного уровня.

Она находит предка элемента (member) на уровне (level) и возвращает потомков этого предка, расположенных на том же уровне, что и указанный элемент, включая его самого.

Синтаксис:

periodsToDate ( level , member )

Пример:

periodsToDate([great_outdoors_company].[Years].[Years].[Year], [2004/Mar] )

результат: возвращает значение для [2004/Jan], [2004/Feb], [2004/Mar]

Функция periodsToDate обычно используется при работе с временем, но может использоваться и для вычисления промежуточной суммы OLAP.

Вычисление промежуточной суммы

Для данного примера в IBM Cognos Power Cube была создана несложная перекрестная таблица. Эта таблица содержит Outlet (торговые точки) по горизонтали и Cost (расходы) по вертикали. Значения Cost имеют денежный формат с двумя знаками после запятой. В IBM Cognos Viewer отчет выглядит следующим образом:

Рисунок 1. Простая перекрестная таблица с Outlet по горизонтали и Cost по вертикали в IBM Cognos Viewer
Рисунок 1. Простая перекрестная таблица с Outlet по горизонтали и Cost по вертикали в IBM Cognos Viewer

После столбца Cost вставляется вычисляемый столбец Running-Total. В этот вычисляемый столбец помещаются результаты следующего выражения:

total([Cost] within set
  periodsToDate([great_outdoors_company].[State].[State].[State],
  currentMember([great_outdoors_company].[State].[State])))

При выполнении этого отчета в IBM Cognos Viewer выводится перекрестная таблица со строками Outlet и столбцами Cost и Running-Total. В столбце Running-Total суммируются все значения столбца Cost до текущей строки Outlet. Это иллюстрирует следующий рисунок:

Рисунок 2. Исходная перекрестная таблица с вычисленными промежуточными суммами в IBM Cognos Viewer
Рисунок 2. Исходная перекрестная таблица с вычисленными промежуточными суммами в IBM Cognos Viewer

Анализ вычисления промежуточной суммы

В данном разделе подробно рассматривается процедура вычисления промежуточной суммы.

currentMember([great_outdoors_company].[State].[State])

currentMember предоставляет контекст данной строки. В вольном переводе это означает "в каждой строке".

periodsToDate([great_outdoors_company].[State].[State].[State],
  currentMember([great_outdoors_company].[State].[State]))

Функция periodsToDate, объединенная с currentMember, дает в каждой строке кумулятивное множество. В данном случае в строке 1 это множество состоит из одного элемента [San Diego]. В строке 2 в это множество будут входить элементы [San Diego] и [San Jose].

total([Cost] within set 
  periodsToDate([great_outdoors_company].[State].[State].[State],
  currentMember([great_outdoors_company].[State].[State])))

Функция total внутри множества добавляет измерение для каждого кумулятивного множества. В данном примере для строки 1 total([Cost] будет вычисляться на множестве [San Diego]. В строке 2 добавляется новый элемент множества, и total[Cost] будет вычисляться множестве [San Diego],[San Jose].

Вычисление промежуточной суммы для иерархий предок-потомок

В некоторых случаях источники данных OLAP содержат иерархии предок-потомок, в которых уровни визуально не отображаются. В таких случаях можно применить следующее выражение, получающее значение уровней при помощи функции levels:

total([Cost] within set
  periodsToDate(levels([great_outdoors_company].[State].[State],0),
  currentMember([great_outdoors_company].[State].[State])))

Ресурсы для скачивания


Похожие темы


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management
ArticleID=863914
ArticleTitle=Проверенные методики IBM Cognos: Использование функции periodsToDate в IBM Cognos 10 Report Studio для вычисления промежуточных сумм в OLAP
publish-date=04102013