Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
robert_gansel
Contributor III
Contributor III

Monate in Dimension zusammenfassen

Hallo Gemeinde,

ich mache gerade meine ersten Erfahrungen mit QlikView und bin auf mein erstes Problem gestoßen, zu dem ich keine Antwort finde.

Ich habe in meiner Datenbank eine Spalte namens "Datum", als date im Format DD.MM.YYYY hh:mm:ss. Diese habe ich als Dimension für das Diagramm definiert.

Im Diagramm sollen dann alle Werte die aus demselben Monat stammen summiert werden. Dummerweise werden allerdings nur die Werte mitdemselben Tag summiert.

Wo und was muss ich dem Programm mitteilen, damit die Monate zusammengefasst werden? In der Formel oder in der Dimension?

Bin für hilfreiche Antworten dankbar.

11 Replies
swuehl
MVP
MVP

Am einfachsten erzeugst du beim Laden ein neues Feld, das den Monat beschreibt:

LOAD

     Datum,

     Month(Datum) as Monat,

     Year(Datum) as Jahr,

     Wert,

     ....

FROM ...;

Dann im Chart Monat als Dimension auswählen und als Formel sowas wie

=sum(Wert)

robert_gansel
Contributor III
Contributor III
Author

Danke für die schnelle Antwort. Das hat geholfen.

Jetzt ist die Achsenbeschriftung allerdings nicht mehr so wie gewünscht. Anstatt des Monats wird beispielsweise der 07.Jan.1900 angezeigt. Verstehe ich insoweit, da ja jetzt in dem Feld 00007 steht (was aber dennoch komisch ist, da es in dem Fall der 8te Monat ist)

Wie kann man das jetzt als Monat interpretieren lassen um eine saubere Achsenbeschriftung zu bekommen?

swuehl
MVP
MVP

Prüf bitte mal die Formatierung im Number Tab bzw. ob du eine kontinuierliche Achse im Axes Tab verwendest.

edit:

Zur Erläuterung, Monat August hat eine numerische Repräsentation '8' (ist ja der achte Monat), bei Formatierung als Datum kommt der 7.Januar 1900 heraus, da die Datumsberechnung als Null den 30.12.1899 nimmt, und der 7. Januar 1900 der 8.Tag ist.

robert_gansel
Contributor III
Contributor III
Author

Im Number Tab ist nur eine Formel hinterlegt, für die Summe der Werte, und die ist als Währung formatiert.

Bei den Achsen steht auch nur diese Formel und bei kontinuierlich ist kein Haken

swuehl
MVP
MVP

Was zeigt denn eine Listbox für Werte des Feldes Monat?

Das Skript oben funktioniert nur einwandfrei, wenn das Datum korrekt als solches von QV interpretriert wird (also das Standardformat entsprechend gesetzt ist (wovon ich ausgehe), oder eine der Interpretierungsfunktionen Date#() oder Timestamp#() benutzt wird).

http://community.qlik.com/blogs/qlikviewdesignblog/2013/02/19/why-don-t-my-dates-work

http://community.qlik.com/docs/DOC-3102

Kannst du eventuell eine kleine Bespiel-Applikation hochladen?

robert_gansel
Contributor III
Contributor III
Author

Das Feld Monat zeigt zb "8" für August.

Kann man hier die qvw irgendwo anhängen?

Ansonsten hier mal Script zum Laden:

SET ThousandSep='.';

SET DecimalSep=',';

SET MoneyThousandSep='.';

SET MoneyDecimalSep=',';

SET MoneyFormat='#.##0,00 €;-#.##0,00 €';

SET TimeFormat='hh:mm:ss';

SET DateFormat='DD.MM.YYYY';

SET TimestampFormat='DD.MM.YYYY hh:mm:ss[.fff]';

SET MonthNames='Jan;Feb;Mrz;Apr;Mai;Jun;Jul;Aug;Sep;Okt;Nov;Dez';

SET DayNames='Mo;Di;Mi;Do;Fr;Sa;SoOLEDB CONNECT TO [Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=HAUSSOFT;Data Source=ROBERT\SQLEXPRESS;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ROBERT;Use Encryption for Data=False;Tag with column collation when possible=False];

';

OLEDB CONNECT TO [Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=HAUSSOFT;Data Source=ROBERT\SQLEXPRESS;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ROBERT;Use Encryption for Data=False;Tag with column collation when possible=False];

//-------- Start Multiple Select Statements ------

SQL SELECT *

FROM HAUSSOFT.dbo."r_buch";

SQL SELECT *

FROM HAUSSOFT.dbo."r_haus";

SQL SELECT *

FROM HAUSSOFT.dbo."tRepa";

SQL SELECT

     Datum,

     month(Datum) as Monat,

     year(Datum) as Jahr,

     MaxBetrag

FROM HAUSSOFT.dbo."tRepa";

//-------- End Multiple Select Statements ------

Die Dimension vom Diagramm:

=date(Monat)

Die Formel für die auszugebenen Werte:

sum(MaxBetrag)

swuehl
MVP
MVP

Warum verwendest du eine kalkulierte Dimension?

=Date(Monat)

Das formatiert deine Dimension natürlich als Datum, was für den Monat nicht sinnvoll ist. Einfach Feld Monat als Dimension verwenden.

Wenn du anstelle Jan, Feb, Mär, ... das Datum des Monatsanfangs verwenden willst, verwende

LOAD

     Datum,

     Monthstart(Datum) as Monat,

     ....

und wenn du eine Jahr-Monat Kombination verwenden willst:

LOAD

     Datum,

     Monthname(Datum) as Monat,

     ...

Siehe auch in der Hilfe Datum- und Zeitfunktionen.

Eine Datei kannst du über den erweiterten Editor (Link rechts oben im Editor-Fenster) anhängen.

robert_gansel
Contributor III
Contributor III
Author

ich will es ja gerade als "Jan" oder "Januar" ausgeben, bekomme aber eine Zahl

swuehl
MVP
MVP

Ah, sehe gerade, dass du die SQL-Funktionen anstelle der QV-Funktionen verwendest, Probier mal

LOAD

     Datum,

     month(Datum) as Monat,

     year(Datum) as Jahr,

     MaxBetrag;

SQL SELECT

     Datum,

     MaxBetrag

FROM HAUSSOFT.dbo."tRepa";