Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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
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
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
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