Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
OliverW
Contributor II
Contributor II

Gesamtmenge für offene Reklamationen monatlich in der Qlik-App anzeigen / View open complaint totals monthly in the Qlik app

Hallo zusammen,
 

ich hoffe, Sie können mir einige Tipps für mein aktuelles Anliegen geben:

In unserer Datenbank existiert eine umfangreiche Tabelle mit Reklamationen, jede davon verfügt über eine eindeutige Reklamationsnummer. Jede Reklamation ist zudem durch separate Spalten für das Anlegedatum und das Abschlussdatum gekennzeichnet (Angelegt am und Beendet am). Die Historie der Reklamationen zeigt, dass einige im laufenden Monat abgeschlossen wurden, während andere erst in den folgenden Monaten oder sogar erst nach zwei oder mehr Monaten ihre Bearbeitung abgeschlossen haben. Ferner gibt es auch Reklamationen, die bis heute noch offen sind (weitere Informationen finden Sie im beigefügten Anhang).

Meine Aufgabe bzw. mein Ziel besteht darin, in der Qlik-App eine Tabelle und ein Diagramm zu erstellen, welche die offenen Reklamationen für jeden Monat von 2018 bis heute anzeigen. Dabei soll die relative Anzahl der Reklamationen dargestellt werden, wie im Anhang visualisiert. Ein Beispiel für das gewünschte Ergebnis entnehmen Sie bitte ebenfalls dem Anhang.

Über Ihre Unterstützung freue ich mich sehr und stehe für weitere Rückfragen gerne zur Verfügung.


------------------------ EN-----------------------

Hello everyone,

I hope you can provide me with some tips for my current issue:

In our database, there is an extensive table of complaints, each with a unique complaint number. Each complaint is also characterized by separate columns for the creation date and the completion date (Created on and Completed on). The history of complaints reveals that some were concluded in the current month, while others were completed in the following months or even after two or more months. Additionally, there are complaints that remain open until today (further information can be found in the attached appendix).

My task or goal is to create a table and a chart in the Qlik app displaying the open complaints for each month from 2018 until today. The relative number of complaints should be represented, as visualized in the attachment. Please refer to the attachment for an example of the desired outcome.

I am looking forward to your support and am available for any further questions.

Best regards



Labels (1)
8 Replies
marcus_sommer

Um Von-Bis-Datenbereiche in Cluster (hier Datumswerte mit Monat + Jahr als Cluster - gilt aber prinzipiell für all numerischen Bereiche) abzubilden, ist es erforderlich, die Datenbereiche auf die jeweils erforderliche Granularität in dedizierte Einzelwerte aufzulösen. Bedeutet im ersten Schritt immer, über eine Schleifen-Logik entsprechende Datensätze zu erstellen. Dies könnte direkt in der Ausgangstabelle gemacht werden oder in einer zusätzlichen assoziierten Tabelle und/oder auch mit Zwischen-Schritten und zurück-joinen.

Klingt komplizierter als es ist - hier ist die Grund-Logik sehr anschaulich erklärt: IntervalMatch - Qlik Community - 1464547. Bei den noch offenen Reklamationen sollte übrigens ein End-Wert, wie today() oder monthend/yearend(today()) gesetzt werden.

Hinsichtlich der gezeigten Beispiele sieht es danach aus, dass Gantt-Charts verwendet werden sollen. Hier mal als Start-Punkt: Recipe for a Gantt chart - Qlik Community - 1469842 - es gibt hier aber noch diverse weitere Umsetzungsbeispiele.

Cascader
Creator
Creator

try something like this:

FOR i = vL.MinDate TO vL.MaxDate
statisticsTable:
LOAD
$(i) as your_master_date
Count(Distinct If(len(CloseDate) = 0 and If(Month(CreateDate) = Month(Today()) and Year(CreateDate) = Year(Today()),1,0)) AND isComplaint=1 , ComplaintID)) as statisticsTable.OpenWithinOneMonth
, Count(Distinct If(len(CloseDate) = 0 and If(Month(CreateDate) < Month(Today()) and Year(CreateDate) <= Year(Today()),1,0)) AND isComplaint=1 , ComplaintID)) as statisticsTable.OpenMoreThanOneMonth
, Department as statisticsTable.Department
Resident Complaints
Group by Department;
NEXT

 

 

then you can connect dates to month from your master calendar 

OliverW
Contributor II
Contributor II
Author

Thank you for the intriguing suggestion!

However, I have a question. Is "isComplaint" a flag? Where does it come from?

OliverW
Contributor II
Contributor II
Author

Thank you very much for the great idea! I will research it and try to implement it.

Cascader
Creator
Creator

yes, it's just an example for a flag or you can put any other condition. 

 

OliverW
Contributor II
Contributor II
Author

Hallo Markus,

mit IntervalMatch habe ich es gemacht, wie das Prozess in  IntervalMatch – Qlik Community – 1464547  beschrieben ist. Und kommt etwas in Frage. 
Jetzt zählt Qlik erste zwei Zahlen richtig aber dann unrelevante Daten. Woran könnte es liegen? 

Script:

REKL:

Load

REKLAMATION.REK_ANGELEGT_AM as REK_Datum,
REKLAMATION.REK_VORGANG_NR as REK_VORGANG_NR
resident REKLAMATION;



Intervals:
load
REKLAMATION.REK_ANGELEGT_AM as Intervals_REK_ANGELEGT_AM,
if(isNull(REKLAMATION.REK_BEENDET_AM), today(), REKLAMATION.REK_BEENDET_AM) as Intervals_REK_BEENDET_AM
Resident REKLAMATION;


BridgeTable:
IntervalMatch (temp_REK_Datum)
Load
Intervals_REK_ANGELEGT_AM,
Intervals_REK_BEENDET_AM
Resident Intervals;

Ergebnistabelle sehen Sie bitte im Anhang.

marcus_sommer

Was da jetzt nicht ganz passt, ist schwierig zu sagen, denn das Skript + Datenmodell ist nur teilweise sichtbar und das Dataset nicht bekannt. Auffällig ist jedenfalls, dass es den synthetischen Schlüssel in 3 Tabellen gibt und nicht in zwei Tabellen und die tmp-Tabelle wohl noch gelöscht werden müsste.

Insgesamt sind synthetische Schlüssel ein sehr kontroverses Thema, wobei ich sie als grundsätzlich invalide ansehe, auch wenn sie in spezifischen Szenarien durchaus funktionieren können, wie in dem Post von HIC beschrieben. Die kleinste Abweichung im Datenmodell und/oder Besonderheiten im Dataset können zu unerwarteten Ergebnissen führen.

Ich persönlich nutze nie einen Intervalmatch, da es mir zu kompliziert und unflexibel ist - ich verweise aber gern auf das Posting, da hier die Logik und Hintergründe der Bereichsauflösung schön erklärt werden und der Intervalmatch ein natives Load-Features ist, das prinzipiell schon funktioniert.

Für mich besser passend ist es, die entsprechende Bereichsauflösung mit einem internen while-loop zu lösen, wie:

t: load Key, date(VON + iterno() - 1) as Datum, iterno() as IterNo
    from X while VON + iterno() - 1 <= BIS;

was in der Form u.a. dazu führt, dass die VON-BIS Informationen anschließend gar nicht als Felder vorliegen und sie sind ja auch für keinerlei Auswertungszwecke nützlich, maximal um sie als Begleit-Information irgendwo mit anzuzeigen. Vergleichsweise häufig behalte ich auch diese aufgelösten Tabellen nicht, sondern joine/mappe die relevante Zuordnung zur Fakten-Tabelle. Hier gibt es aber kein prinzipielles falsch/richtig, sondern es kommt darauf an, welche Informationen man wo benötigt.

Davon abgesehen, nutze mal kein Chart mit Formeln, um die Ergebnisse zu prüfen, sondern eine Tabellen-Box mit allen relevanten Feldern - und einer eineindeutigen ID. Sofern es keine solche ID gibt, kann man diese auch mit recno(), rowno() und/oder iterno() generieren. Hierüber kann man dann exakt tracken, welche Daten von woher kommen und ob es etwaige Duplikationen gibt und wie diese Daten zueinander assoziiert sind - also wie gewünscht miteinander matchen oder auch nicht und NULL ergeben.

OliverW
Contributor II
Contributor II
Author

Thank you very much for the explanation and idea.