Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Ich möchte aus einer Tabelle eine Gesamtsumme ziehen, wo das Datum kleiner heute ist.
In dem Fall müsste die Summe 2.340.000 sein. Leider bekomme ich aber mit dieser Formel keinen Wert zurück.
Sum(TOTAL{<GESCHAEFTSJAHR={'2017/2018'},BELEGTYP={'ABSOLLGES'},DATE(DATUM(),'DD.MM.YYYY')=Date(Today(),'DD.MM.YYYY')>}GESPREISNETTO)
Moin Martin,
so funzt das nicht. Wenn Du im SET eine Funktion unterbringen willst, muss diese mit $ eingeleitet werden.
Es macht Sinn, im Script (Kalender) explizit ein Feld anzulegen, welches das Datum widerspiegelt:
...
NUM#(FLOOR(DATUM)) AS DATUM_num
....
In den expressions dann z.B.:
Sum(TOTAL{<GESCHAEFTSJAHR={'2017/2018'},BELEGTYP={'ABSOLLGES'},DATUM = {"<=$(=TODAY())"}>}GESPREISNETTO)
Peter
Auf der linken Seite eines Set Analysis Modifier muss immer ein Feld sein, d.h.:
DATE(DATUM(),'DD.MM.YYYY')=Date(Today(),'DD.MM.YYYY')
geht nicht und müsste (mit weiteren Syntax-Anpassungen) so aussehen:
DATUM = {"<$(=Date(Today(),'DD.MM.YYYY'))"}
wobei bei einem < oder > Vergleich das Format keine Rolle spielt. Ist der Vergleich hingegen auf = dann muss das Format absolut identisch sein. Empfehlenswert ist hier bereits die Trennung von Datum und Zeit im Skript, z.B. per
date(floor(Datum)) as Datum,
time(frac(Datum)) as Zeit
und auch zusätzlich rein numerische Felder hierzu mitzuführen, wie:
num(floor(Datum)) as Datum,
num(frac(Datum)) as Zeit
die jegliche Format-Problematiken von vornherein umgehen und am Besten generiert innerhalb eines Master-Kalenders: How to use - Master-Calendar and Date-Values
- Marcus
Danke schon mal.
Das mit dem Masterkalender werde ich mir mal genauer anschauen.
Bin in dem Thema noch recht neu.
Wenn ich das nun so eintrage, da ich kleiner/gleich benötige ( < = ), kommt bei mir immer noch nichts raus.
//Sum(TOTAL{<GESCHAEFTSJAHR={'2017/2018'},BELEGTYP={'ABSOLLGES'},
DATUM < = {"<$(=Date(Today(),'DD.MM.YYYY'))"}>}
GESPREISNETTO)
Ändere mal zu:
Sum(TOTAL{<GESCHAEFTSJAHR={'2017/2018'},BELEGTYP={'ABSOLLGES'},
DATUM < = {"<'$(=Date(Today(),'DD.MM.YYYY'))'"}>}
GESPREISNETTO)
und benutze das mal in einem Tabellendiagramm und lasse dort die Formelbezeichnung weg. Im Header kann man dann sehen, wie QlikView die Formel interpretiert.
Was mir gerade noch auffällt ist, dass das Datum in der obigen Tabelle links-ausgerichtet steht, was andeutet, dass QlikView es wohl als String und nicht als Zahl interpretiert. Das müsste dann mit etwas wie:
date(floor(timestamp#(Datum, 'YYYY-MM-DD hh:mm:ss.fff'))) as Datum
konvertiert und formatiert werden.
- Marcus
Hi Marcus,
hilft leider nicht.
Hab das ganze mal exportiert, vielleicht wird es dann einfacher.
Danke ! !
Marcus hat es schon erwähnt: ich kann eigentlich nur dringend empfehlen, bei allen Datumswerten in Verbindung mit SET-Analysis, reinweg numerische Werte zu nutzen (oder rollierende Monate/Wochen).
Formeln sind dann auch bedeutend einfacher zu lesen.
Peter
Hi Martin,
Qlik Sense habe ich momentan nicht zur Verfügung - vielleicht kann da mal jemand anders reinschauen.
- Marcus
Hallo Peter,
sorry, das ich so Nachfrage, da das Thema doch etwas neu ist.
Meinst Du damit in der Tabelle von timestamp auf date umstellen?
Habe ich versucht, klappt irgendwie auch nicht.
Könnte natürlich mit week(now) einen vergleich machen mit meinem datumsfeld als, aber das klappt auch irgendwie nicht.
Sum(TOTAL{<GESCHAEFTSJAHR={'2017/2018'},BELEGTYP={'ABSOLLGES'},WEEK(DATUM) < = {WEEK(NOW())}>}GESPREISNETTO)
Moin Martin,
so funzt das nicht. Wenn Du im SET eine Funktion unterbringen willst, muss diese mit $ eingeleitet werden.
Es macht Sinn, im Script (Kalender) explizit ein Feld anzulegen, welches das Datum widerspiegelt:
...
NUM#(FLOOR(DATUM)) AS DATUM_num
....
In den expressions dann z.B.:
Sum(TOTAL{<GESCHAEFTSJAHR={'2017/2018'},BELEGTYP={'ABSOLLGES'},DATUM = {"<=$(=TODAY())"}>}GESPREISNETTO)
Peter
Danke Peter,
hab das nun mal alles sauber mal Laden formatiert und dann geht das auch 🙂
Gruß
Martin