Получение определенного количества строк в одном наборе данных, которых нет в другом наборе данных, построение отчетов COGNOS BI

#reporting #data-warehouse #business-intelligence #cognos

Вопрос:

Я работаю с полуаддитивными данными, поэтому остатки на счетах. Я пытаюсь создать отчет, в котором я выбираю период времени, начиная с этого периода времени меня интересует состояние учетной записи в начале и в конце периода времени. С помощью этих двух «наборов данных» я хочу сделать следующее:

  • Получите определенное количество идентификаторов учетных записей, существующих в первом наборе данных, но не в последнем
  • Получите определенное количество идентификаторов учетных записей, существующих в последнем наборе данных, но не в первом

Cognos встроил эту функцию «кроме/пересекаться», но я немного обеспокоен ее использованием. Беспокоюсь, что это быстро станет очень грязным. Какова наилучшая практика, когда дело доходит до создания того, что я здесь описываю?

Комментарии:

1. Вы можете создавать синглеты с их собственным запросом для получения первых/последних наборов данных. Вы пробовали что-то вроде… count(отдельный [идентификатор учетной записи] для [компании],[период])?

Ответ №1:

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

Я думаю, вам понадобится 4 запроса:

Элемент данных Query1:
Фильтры учетных записей: [дата] = ?дата начала? ( по мере необходимости)

Элемент данных Query2:
Фильтры учетных записей: [дата] = ?дата окончания? ( по мере необходимости)

Запрос 3 = Запрос 1, ЗА ИСКЛЮЧЕНИЕМ запроса 2 (потерянный)
Элемент данных: количество(идентификатор учетной записи)

Запрос 4 = Запрос 2, ЗА ИСКЛЮЧЕНИЕМ запроса 1 (получен)
Элемент данных: количество(идентификатор учетной записи)