#reporting #data-warehouse #business-intelligence #cognos
Вопрос:
Я работаю с полуаддитивными данными, поэтому остатки на счетах. Я пытаюсь создать отчет, в котором я выбираю период времени, начиная с этого периода времени меня интересует состояние учетной записи в начале и в конце периода времени. С помощью этих двух «наборов данных» я хочу сделать следующее:
- Получите определенное количество идентификаторов учетных записей, существующих в первом наборе данных, но не в последнем
- Получите определенное количество идентификаторов учетных записей, существующих в последнем наборе данных, но не в первом
Cognos встроил эту функцию «кроме/пересекаться», но я немного обеспокоен ее использованием. Беспокоюсь, что это быстро станет очень грязным. Какова наилучшая практика, когда дело доходит до создания того, что я здесь описываю?
Комментарии:
1. Вы можете создавать синглеты с их собственным запросом для получения первых/последних наборов данных. Вы пробовали что-то вроде… count(отдельный [идентификатор учетной записи] для [компании],[период])?
Ответ №1:
Возможно, существуют более элегантные решения с использованием оконных функций, но мне нравится использовать много простых элементов, чтобы у следующего человека была хоть какая-то надежда поддержать то, что я сделал.
Я думаю, вам понадобится 4 запроса:
Элемент данных Query1:
Фильтры учетных записей: [дата] = ?дата начала? ( по мере необходимости)
Элемент данных Query2:
Фильтры учетных записей: [дата] = ?дата окончания? ( по мере необходимости)
Запрос 3 = Запрос 1, ЗА ИСКЛЮЧЕНИЕМ запроса 2 (потерянный)
Элемент данных: количество(идентификатор учетной записи)
Запрос 4 = Запрос 2, ЗА ИСКЛЮЧЕНИЕМ запроса 1 (получен)
Элемент данных: количество(идентификатор учетной записи)