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: 
f_vittorio
Contributor
Contributor

Verfügbare Daten im Arbeitsblatt einschränken

Hallo zusammen,

ich möchte in einem Arbeitsblatt die verfügbaren Daten einschränken.

Es sollen nur die Daten der letzten 3 vollen Monate verfügbar sein.

Ich glaube das ich mit einem Feld aus dem autoCalendar arbeiten kann:

RunTime.autoCalendar.MonthsAgo={3}  //Runtime übergebe ich an Qlik

Ich weiß nun nicht wo ich das anwenden kann.  Im Ladescript scheint es noch nicht verfügbar zu sein?!

Die Idee war dort mit einer where Bedingung zu arbeiten.

Da ich noch recht unerfahren bin kann / möchte ich mich gar nicht auf einen Lösungsweg festlegen sondern hoffe auf

Eure Ideen.

Vielen Dank

Viktor 

 

Labels (2)
1 Solution

Accepted Solutions
marcus_sommer

Ich denke, der autocalendar ist eher weniger geeignet, auch wenn man dort vielleicht bereits entsprechende Zuordnungs- und/oder Flag-Felder generiert hat, denn es würde ja bedeuten erst alle Daten zu laden, den Kalender abzuleiten und anhand dessen die geladen Daten nochmal mit der Filterung zu laden.

Insofern würde ich die Fakten gleich direkt filtern, vielleicht mit einer where-clause, wie diese hier:

where Datum >= addmonths(monthstart(today()), -3) and Datum < monthstart(today());

- Marcus

View solution in original post

3 Replies
marcus_sommer

Ich denke, der autocalendar ist eher weniger geeignet, auch wenn man dort vielleicht bereits entsprechende Zuordnungs- und/oder Flag-Felder generiert hat, denn es würde ja bedeuten erst alle Daten zu laden, den Kalender abzuleiten und anhand dessen die geladen Daten nochmal mit der Filterung zu laden.

Insofern würde ich die Fakten gleich direkt filtern, vielleicht mit einer where-clause, wie diese hier:

where Datum >= addmonths(monthstart(today()), -3) and Datum < monthstart(today());

- Marcus

f_vittorio
Contributor
Contributor
Author

Vielen Dank Markus.

Habe das sogar fast selber hinbekommen bis auf AddMonths() - die Notwendigkeit habe ich nicht erkannt. Aus der Qlik Webseite wird mir nicht klar, warum monthstart(today()) ein Datum liefert und monthstart(today(), -3) nicht?!

Kannst du mir eine Tipp geben woran ich das hätte erkennen können?

Und, recht interessant finde ich auch das du die Klammer von addmonths nach today() zu machst?! Also beide Funtionen iwie verschachtelst... habe so etwas noch nicht gesehen..?!

Btw, gäbe es aus deiner Sicht noch eine andere Möglichkeit die Daten in einem Arbeitsblatt einzuschränken?

Danke

Viktor

marcus_sommer

Du hast recht, da monthstart() ja auch den Verschiebe-Parameter mitbringt, braucht man addmonths() nicht - meint: monthstart(today(), -3) sollte auch funktionieren. Bei dieser Funktion muss man aber aufpassen, um sie nicht mit monthsstart() zu verwechseln, denn das zweite s rutsch einem schnell durch.

Anstatt die Daten bereits im Skript hart zu filtern, kann man sie natürlich auch kennzeichnen und das dann als Auswahlen und/oder Set Analysis Filter nutzen, um die gewünschten Sichten zu erzielen. Meiner Ansicht nach macht man sowas am besten in einem Master-Kalender, in dem man dort die Filter-Logik nutzt, um entsprechende Flags zu generieren, z.B. mit:

-(Datum >= monthstart(today(), -3) and Datum < monthstart(today())) as Flag

welches dann ein 1/0 bzw. WAHR/FALSCH Wert erzeugt.

In Sense wird häufig auf das autocalendar-Feature verwiesen, in dem man sowas auch durchaus integrieren kann - ich denke jedoch, dass der "klassische", selbst generierte Master-Calendar weiterhin deutlich besser geeignet ist.

Hier mal etwas background zu dieser Thematik:

How to use - Master-Calendar and Date-Values - Qlik Community - 1495741.

- Marcus