Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
martinr_
Creator
Creator

Summe Datum kleiner heute

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)

1 Solution

Accepted Solutions
prieper
Master II
Master II

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

View solution in original post

9 Replies
marcus_sommer

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

martinr_
Creator
Creator
Author

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)

marcus_sommer

Ä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

martinr_
Creator
Creator
Author

Hi Marcus,

hilft leider nicht.

Hab das ganze mal exportiert, vielleicht wird es dann einfacher.

Danke ! !

prieper
Master II
Master II

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

marcus_sommer

Hi Martin,

Qlik Sense habe ich momentan nicht zur Verfügung - vielleicht kann da mal jemand anders reinschauen.

- Marcus

martinr_
Creator
Creator
Author

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)

prieper
Master II
Master II

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

martinr_
Creator
Creator
Author

Danke Peter,

hab das nun mal alles sauber mal Laden formatiert und dann geht das auch 🙂

Gruß

Martin