Cognos Сообщает об общих значениях с той же датой

#sql #cognos

Вопрос:

Я создаю отчет в IBM Cognos report studio.

Набор данных выглядит следующим образом: включая название местоположения, название товара , номер товара и дни в инвентаре.

 id date type hours 1 10/27/2021 work 7 1 10/27/2021 overtime 1 1 10/24/2021 work 7 1 10/26/2021 work 7   

Я использую total для суммирования часов за одну и ту же дату

 total ([Hours] for [Date],[ID])  

Он возвращается:

 id date type hours 1 10/27/2021 work 8 1 10/27/2021 overtime 8 1 10/24/2021 work 7 1 10/26/2021 work 7   

Затем я попробовал сосчитать и подсчитать. затем установите в фильтре значение count = 1. Установите агрегат объектов после. Возврат данных:

 id date type hours count 1 10/27/2021 work 1 1 1 10/27/2021 overtime 1 2 1 10/24/2021 work 1 1 1 10/26/2021 work 1 1  

что мне нужно:

 id date type hours  1 10/27/2021 work 8 1 10/24/2021 work 7 1 10/26/2021 work 7   

Спасибо за вашу помощь!

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

1. Так в чем же вопрос?

2. Я отредактировал вопрос. Что мне нужно, так это общий рабочий час на ту же дату. Но когда я применил фильтр подсчета, функция total не будет работать.

3. Можете ли вы объяснить фильтр подсчета? Было ли это сделано для контроля количества возвращаемых строк? Например, вы хотите видеть 1 строку на дату И хотите включить часы всех типов … если это так, введите colum вводит в заблуждение, и вы, возможно, захотите удалить его (поскольку он будет включать часы работы и сверхурочную работу).

4. Несколько вещей. Во-первых, 27 октября id 1 не выполнил 8 часов типовой работы. ID 1 выполнил 7 часов типовой работы и 1 час типовой сверхурочной работы. Я не знаю, почему вы хотели бы, чтобы часы были равны 8, но все равно имели столбец типа в проекции. Я не уверен, какова связь между вашим первым запросом и вашими подсчетами и текущими подсчетами. Я не понимаю связи между ними и таблицей того, что вам нужно.

5. Вы понимаете, почему ваше выражение возвращает 8 часов как для рабочих, так и для сверхурочных типов 27 октября в вашем первом запросе? Он делает именно то, о чем вы его просили.

Ответ №1:

Требование все еще немного неясно, но, если я правильно понимаю, для запроса нужны эти элементы данных:

Имя Выражение Агрегация
ID [удостоверение личности] Нет
Дата [дата] Нет
Тип «работа» Нет
часы [часов] Весь

Затем добавьте фильтр с этим выражением:

[type] in ('work', 'overtime')

Включите любые значения для [типа], которые вы считаете «рабочими».

В качестве альтернативы, поскольку ваши комментарии указывают на то, что ваш образец ввода и желаемый вывод являются неполными…

Имя Выражение Агрегация
ID [удостоверение личности] Нет
Дата [дата] Нет
Тип случай, когда [введите] в («работа», «сверхурочная работа»), затем «работа» еще [введите] конец Нет
часы [часов] Весь

…без фильтра.