Линейная диаграмма Qlikview с несколькими выражениями в зависимости от периода времени

Я новичок в Qlikview, и после нескольких неудачных попыток мне нужно попросить совета относительно диаграмм в Qlikview. Я хочу создать линейный график, который будет иметь:

Одно измерение - период времени в один месяц с разбивкой по дням в нем.

Одно выражение - Количество создаваемых задач в день

Второе выражение - Количество закрытых задач в день

Третье выражение - Количество открытых задач в день

Это очень простой пример, и я не смог найти для него решения, и, честно говоря, я думаю, что не понимаю, как мне настроить измерение и выражение периода времени. Каждый раз, когда я пытаюсь ввести более одного выражения, все идет не так. Может быть, это потому, что у меня несколько дат или мое измерение неверно.

Вот мои простые данные:

http://pastebin.com/Lv0CFQPm

Я читал о вспомогательных таблицах, таких как Master Callendar или Date Island, но не мог этого понять. Я пытался следовать руководству отсюда: https://community.qlik.com/docs/DOC-8642, но это сработало только на одно свидание (по крайней мере, для меня).

Как мне настроить измерение и выражение на моей диаграмме, чтобы я мог подсчитать поле идентификатора, если Дата создания совпадает с датой из измерения, а Статус подходит?

У меня есть персональная версия, поэтому я не могу открывать qwv-файлы других авторов.

Заранее спасибо, с уважением!


person jabree    schedule 10.06.2015    source источник


Ответы (1)


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

Calls:
LOAD Type, 
     Id, 
     Priority, 
     'New' as Status,
     date(floor(Created)) as [Date],
     time(Created) as [Time]
FROM
[Calls.xlsx]
(ooxml, embedded labels, table is Sheet1) where Created>0;

LOAD Type, 
     Id, 
     Priority, 
     Status,  
     date(floor(Resolved)) as [Date],
     time(Resolved) as [Time]
FROM
[Calls.xlsx]
(ooxml, embedded labels, table is Sheet1) where Resolved>0;

Ключевые концепции здесь позволяют автоматическому объединению QlikView выполнять свою работу, делая имена полей обоих операторов загрузки одинаковыми, включая использование заглавных букв. Второй - разделение метки времени на дату и время. Это позволяет вам иметь измерение только Дата и группировать события на день. (В наборах больших данных экономия ресурсов также значительна.) Третий - создание фиктивного статуса «Новое» для каждого события в день его создания.

Только с этими данными и этими выражениями

Created = count(if(Status='New',Id))
Resolved = count(if(Status='Resolved',Id))

а потом

Created-Resolved

все с полным накоплением, отмеченным флажком «Открыто» (чтобы дать вам промежуточную сумму, а не дневную сумму, которая может стать отрицательной и выглядеть странной), вы можете нарисовать этот график.

Количество открытых, закрытых и открытых звонков

Для дополнительной полноты вы можете добавить это в раздел кода, чтобы заполнить свои даты и создать Главный календарь, о котором вы говорили. Есть много других способов добиться этого.

MINMAX:
load floor(num(min([Date]))) as MINTRANS,
floor(num(max([Date]))) as MAXTRANS
Resident Calls;

let zDateMin=FieldValue('MINTRANS',1);
let zDateMax=FieldValue('MAXTRANS',1);

//complete calendar
Dates:
LOAD
    Date($(zDateMin) + IterNo() - 1, '$(DateFormat)') as [Date]
AUTOGENERATE 1
WHILE $(zDateMin)+IterNo()-1<= $(zDateMax);

Тогда вы могли бы нарисовать эту диаграмму. Не забудьте отключить параметр «Подавлять нулевые значения» на вкладке «Презентация». Полная версия календаря

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

Комбо-диаграмма

person The Budac    schedule 11.06.2015
comment
Привет, Будац, Большое спасибо за такой подробный ответ. Итак, если я понимаю это правильно, решение для такого рода требований к диаграммам состоит в том, чтобы всегда стремиться к одной дате для каждой таблицы, потому что я могу иметь только одно временное измерение в первую очередь. В приведенных мной примерах данных у нас была одна таблица и две даты, но решение состоит в том, чтобы создать две таблицы и объединить их (объединить). Мне нужно немного прочитать об этой функции, чтобы полностью понять, что там только что произошло. Я дам тебе знать, если мне удастся сделать это позже сегодня. С уважением. - person jabree; 11.06.2015
comment
Я предпочитаю думать об этом как об одном списке всех событий, а не о двух таблицах. Но, по сути, да, нам нужна общая дата, чтобы использовать ее в качестве измерения. - person The Budac; 11.06.2015
comment
Budac большое спасибо за это, мне удалось создать этот график за несколько минут. Теперь я понял, что вы имели в виду под таблицей событий. В итоговой таблице были дополнительные строки, и некоторые задачи дублировались, но именно так, как они мне нужны, чтобы легко подсчитывать. Единственная проблема - это накопление количества открытий в Pivot, я не думал об этом, но я предполагаю, что это совершенно другая проблема / вопрос :) - person jabree; 12.06.2015