Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello and a happy New Year,
I am a newbie with Qlik Sense and SQL and have have the following question:
Which parameters do i need to address, for the correct conclusion?
I am grateful for Feedback so thanks a lot in advance.
_____
Hallo und ein frohes neues Jahr,
ich bin ein Neugling bei Qlik Sense und SQL und habe folgende Frage:
Wie spreche ich die Parameter korrekt an?
Freue mich über Feedback, vielen Dank im Voraus.
You could use an expression for your filter-value like:
sum({$<Year={"$(=max(Year))"}>}[Position-Netto]) // max. year to all values respectively to the selection
sum({$<Year={"$(=max(Year)-1)"}>}[Position-Netto]) // the previous year to above
Further I suggest to consider to avoid or at least to reduce the qualifying of tables/fields - the efforts and pain to handle fields like: [AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year] is much bigger than their potential advantages.
- Marcus
so far i am using this formula but can I make it more flexibel?
sum({$<[AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year]={'2015'}>}[Position-Netto])
Instead of '2015' some kind of forumla like
([AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year]-1)
You could use an expression for your filter-value like:
sum({$<Year={"$(=max(Year))"}>}[Position-Netto]) // max. year to all values respectively to the selection
sum({$<Year={"$(=max(Year)-1)"}>}[Position-Netto]) // the previous year to above
Further I suggest to consider to avoid or at least to reduce the qualifying of tables/fields - the efforts and pain to handle fields like: [AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year] is much bigger than their potential advantages.
- Marcus
Hallo Marcus,
dein Vorschlag ist mir sehr willkommen, ich muss also von dem "Text" auf ein "Value" umschwenken, um die Formel mit -1 zu verwenden?
Wie kann ich den Bezeichner kürzer setzen?
[AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year] as Buchungsdatum
so in etwa?
Grüße
Sam
Ich habe auch gleich noch eine Frage:
ich wollte es noch etwas flexibler gestalten und habe versucht das Jahr anzupassen
right(GetCurrentSelections([AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year]),4)-1
damit komme ich zwar auf das Vorjahr anhand der Selektierung, aber wie bekomme ich das andere?
sum({$<Year={"$(=max(Year))"}>}[Position-Netto])
Hallo Sam,
wenn möglich, sollte man pure numerische Werte in diesen Set-Matchings haben. Sie sind performanter als Strings, man vermeidet potentielle Problem mit Formaten und man kann Vergleichs-Operatoren wie <= >= einsetzen.
Ich persönlich nutze das Qualifying nahezu nie und benenne den Großteil der Felder gleich beim Einladen so, wie sie auch später in den Reports genutzt werden. Neben dem Umbenennen via AS oder ALIAS kann man auch Rename-Statements verwenden, insbesondere auch per Mapping. Siehe hierzu: How to Rename Fields.
Schöne Grüße
Marcus
Hallo Marcus,
ich habe versucht das Ganze flexibler zu gestalten und das Jahr bekomme ich so hin (bzw. ohne -1):
aber so klappt es dann nicht mehr (hab versucht es deiner Berechnung oben nach zu stellen):
Eine andere Frage, wenn ich die Felder am Anfang umbenenne und später dann die Daten neu lade bzw. die Datentabelle überschreibe mit neuen Daten, wirkt sich das dann auf die Bezeichnung aus oder entsteht dann ein Konflikt oder erkennt Qlik Sense das? (Die Tabelle bleibt gleich, nur die Daten werden mehr)
Und das letzte, ich habe jetzt versucht das so zu kürzen:
aber das will nicht so wirklich funktionieren. Kann ich das überhaupt in der Formel selbst eintragen oder muss ich das, an einer anderen Stelle bei Qlik Sense eingeben? (Anfänger am Werk )
Liebe Grüße
Sam
Hallo Sam,
es müsste dann so aussehen:
{$<Year={"$(=right(getcurrentselections(Year),4)-1)"}>}
wobei besser wären:
{$<Year={"$(=getfieldselections(Year)-1)"}>} oder {$<Year={"$(=max(Year)-1)"}>
Wenn ich Dich jetzt richtig verstehe, sind bereits die Feldnamen in der Datenbanktabelle bzw. in den Dateien so qualified: [AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year] ?
Dann könntest Du sie per AS einfach umbenennen oder auch, wie oben bereits erwähnt, ein Rename-Statement hierfür verwenden. Der Lade-Prozess sollte davon weitgehend unberührt bleiben, eine Ausnahme hiervon wären z.B. inkrementelles Laden - hier müsste man gegebenenfalls die Feldbezeichnungen anpassen oder aber auch das Renaming im Anschluss daran durchführen.
Schöne Grüße
Marcus