#analytics #cognos #cognos-11
#аналитика #cognos #cognos-11
Вопрос:
К сожалению, у меня закончились идеи. В настоящее время я изучаю COGNOS analytics, и мне могла бы понадобиться ваша помощь. У меня есть перекрестная таблица, которая выглядит следующим образом и поступает из другой системы, которая использует ту же исходную структуру. Я использую учетную запись компании и являюсь пользователем, поэтому, к сожалению, я не могу писать SQL или какие-либо скрипты!
MIS0 MIS1 MIS3 MIS6
2016 0,0 0,1 0,3 0,6
2017 0,0 0,1 0,4 0,7
2018 0,0 0,2 0,4 0,7
Я воспроизвел это в COGNOS, но не могу сделать одну вещь правильно (это намного сложнее, чем чем, но я думаю, что это ядро)
объяснение:
- MIS = месяцы в обслуживании
- годы = год выпуска продукта
- значения = (ошибки / произведенные (в этом году) и проданные продукты) * 1000
Ошибка имеет свойство MIS = в каком MIS это произошло, также продукт имеет свойство что-то вроде dateOfManufacture
хорошо, итак, проблема … иметь, например, MIS6 означает: ошибка, которая произошла в течение 6 месяцев с момента покупки. Сложность заключается в том, что ошибка MIS3 логически также относится к ошибке MIS6.
Итак, мне нужно создать элемент данных или фильтр или какой-либо другой трюк, который позволил бы мне: выбирать ошибки, относящиеся к MIS, от 0 до X, где X будет числом в заголовке для столбцов (0,1,3,6 …), основываясь, конечно, на годе изготовления.. Я ограничен своими правами пользователя, поэтому, пожалуйста, если у вас есть предложение, которое содержит написание скрипта, спасибо, вам подходит! 🙂 но я не смогу сделать это с помощью скрипта. Извините за отсутствие подробностей, но именованные переменные или любой код являются частью конфиденциальности, которой я связан. 🙁
Спасибо за уделенное время и хороших выходных!
Fault
MIS: 2
ProductID: <121212>
Product
ProductID: <121212>
Date of assembly: 25.02.2020
(MIS: gets copied to product fault when fault occours)
Предполагается, что в таблице отображаются сбои, произошедшие за определенные месяцы эксплуатации — это означает, что если ошибка, как указано в приведенном выше примере, произошла за 2 месяца эксплуатации, ее следует рассчитать по столбцам MIS3 и MIS6, а не по статистике MIS1 и MIS0, поскольку ошибка произошла не за 1 месяц, а за 2.
В основном, например, во второй колонке первой строки написано: найдите мне продукты, которые были произведены в 2016 году — подсчитайте, сколько неисправностей у них было за первый месяц эксплуатации. Это число разделите на количество найденных вами продуктов (первое предложение) и все это умножьте на 1000 (ошибки / 1000)Как вы теперь, вероятно, видите, проблема возникает при переходе к следующему столбцу в той же строке. -> найдите мне продукты, которые были произведены в 2016 году. Подсчитайте, сколько неисправностей у них было за 3 месяца обслуживания (= 1,2,3 включительно), а затем разделите на количество произведенных продуктов — умножьте на 1000.
Когда я настраиваю перекрестную таблицу, мне нужно использовать inteval (MIS0 — MIS1,3, 6) с плавающим максимумом, но у меня не хватает ума сделать это..
Комментарии:
1. Я в замешательстве. Вы хотите сказать, что перекрестная таблица является входными данными для этого процесса? Вы не можете получить доступ к фактическим данным? И ваш результат — это количество сбоев за (месяцы с момента покупки) и (год выпуска продукта)? То есть, по сути, если вы удалите (количество произведенных и проданных продуктов) из входных данных, у вас будет результат, который вам нужен?
2. в последнем столбце и первой строке указаны неисправности, проявившиеся за 6 месяцев эксплуатации (для продуктов, выпущенных в 2016 году) / продукты, выпущенные в 2016 году * 1000 . Таким образом, сюда входят также ошибки из MIS3 и т.д.. Проблема в том, что в формуле должны быть ошибки от 0 до X, где X — соответствующее значение ошибки
3. Фильтр теперь в основном неверный<=6 .. но это показывает мне только один столбец.. Мне нужен MIS <= X
4. Пожалуйста, предоставьте пример ввода и желаемый результат.
5. отредактировал желаемый ввод / вывод
Ответ №1:
Сначала попробуйте со списком. Если это сработает, мы можем преобразовать список в перекрестную таблицу
Давайте начнем с выделения показателя в контексте времени
Это будет ваш первый столбец
В течение одного месяца. Создайте элемент данных [Ошибки месяца 1], подобный этому:
if ([Year] = 2016 and [Month] = 1)Then([Faults])Else(0)
Следующий столбец предназначен как для месяца 1, так и для месяца 2. Для достижения этой цели мы добавляем функцию В (1,2)
Создайте элемент данных [Ошибки месяца 1 и 2] следующим образом:
if ([Year] = 2016 and [Month] IN(1,2))Then([Faults])Else(0)
повторите эту логику для всех других элементов данных