Qlik Community

QlikView Layout & Visualizations

Discussion Board for collaboration on QlikView Layout & Visualizations.

martinr_
New Contributor III

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
Honored Contributor II

Re: Summe Datum kleiner heute

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

9 Replies

Re: Summe Datum kleiner heute

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_
New Contributor III

Re: Summe Datum kleiner heute

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)

Re: Summe Datum kleiner heute

Ä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_
New Contributor III

Re: Summe Datum kleiner heute

Hi Marcus,

hilft leider nicht.

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

Danke ! !

prieper
Honored Contributor II

Re: Summe Datum kleiner heute

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

Re: Summe Datum kleiner heute

Hi Martin,

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

- Marcus

martinr_
New Contributor III

Re: Summe Datum kleiner heute

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
Honored Contributor II

Re: Summe Datum kleiner heute

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_
New Contributor III

Re: Summe Datum kleiner heute

Danke Peter,

hab das nun mal alles sauber mal Laden formatiert und dann geht das auch :-)

Gruß

Martin

Community Browser