Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
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)
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?
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.
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
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?
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)
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.
ich will es ja gerade als "Jan" oder "Januar" ausgeben, bekomme aber eine Zahl
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";