Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello There,
I have a problem and I remember this time absolutely nothing a:
I have a file with multiple contracts. The contracts have a maturity date (LaufzeitBis) and among others a version of the (also a date).
I can select a specific contract with maturity date with YEAR, MONTH and DAY. (z. B .: All contracts with maturity date 31.12.2015).
Then I get:
Contract Period Date Version
1 31.12.2015 04.01.2015
1 31.12.2015 06.07.2015
1 31.12.2015 17.06.2015
I want now but displayed only the last (latest) version of get (ie from 17.06.2015), all others are not to be displayed.
This should be done more or less automatically, without further manual selection, since later a killer table with contracts is read.
Does anyone have a good idea?
greeting
Peter
Translated with Google Translate - Qlik Community Administrative Team
Hallo,
ich habe ein Problem und mir fällt diesmal absolut nichts ein:
Ich habe eine Datei mit mehreren Verträgen. Die Verträge haben ein Laufzeitdatum (LaufzeitBis) und unter anderem eine Version vom (ebenfalls ein Datum).
Ich kann mit YEAR, MONTH und DAY einen bestimmten Vertrag mit Laufzeitdatum selektieren. (z. B.: alle Verträge mit Laufzeitdatum 31.12.2015).
Dann bekomme ich:
Vertrag Laufzeitdatum Version
1 31.12.2015 01.04.2015
1 31.12.2015 07.06.2015
1 31.12.2015 17.06.2015
Ich möchte jetzt aber nur die letzte (aktuellste) Version angezeigt bekommen (also die vom 17.06.2015), alle anderen sollen nicht angezeigt werden.
Das soll quasi automatisch ohne nochmalige manuelle Selektion erfolgen, da später eine Mördertabelle mit Verträgen eingelesen wird.
Hat jemand eine gute Idee?
Gruß
Peter
Hab vielleicht noch eine einfachere Lösung gefunden:
INPUT:
LOAD KundeNr & Vertrag as Key,
KundeNr,
Vertrag,
LieferungVon,
Day(LieferungVon) as Tagvon,
Month(LieferungVon) as Monatvon,
Year(LieferungVon) as Jahrvon,
LieferungBis,
Day(LieferungBis) as Tagbis,
Month(LieferungBis) as Monatbis,
Year(LieferungBis) as Jahrbis,
Wert,
Version
FROM
Test.xlsx
(ooxml, embedded labels, table is Tabelle1)
;
LOAD *, Key as KeyChecked RESIDENT INPUT
WHERE NOT EXISTS(KeyChecked, Key)
ORDER BY KundeNr, Vertrag, Version desc
;
DROP TABLE INPUT;
Mir ist nicht ganz klar, was du genau willst.
Nach Selektion von Vertrag und Laufzeitdatum sollte
=Date(max(Version))
dir die letzte Version liefern.
You should do (in the script) something like
Load
...
Max(Version)
From
...
Where
...
Group by Laufzeitdatum
Du willst das schon im Ladeskript filtern? Dann ähnlich wie von Alessandro vorgeschlagen, nur würde ich nach Vertrag (und Laufzeitdatum?) gruppieren:
LOAD
Vertrag,
Laufzeitdatum,
Date(max(Version)) as Version,
FirstSortedValue(WeiteresFeld, -Version) as WeiteresFeld,
...
FROM YourTableSource
GROUP BY Vertrag, Laufzeitdatum;
Ich hänge die Testdatei mal an.
Vielleicht wird es dann etwas verständlicher.
Mit dem =Date(max(Version)) hatte ich es schon probiert, aber vielleicht habe ich den Befehl an einem völlig falschen Ende eingebaut.
Kann man hier nichts hochladen?
Ich habe es noch nie gemacht, aber mir wird diese Gruppe nicht als Empfänger angeboten....
Einfach den letzten Post editieren, dann sollte man direkt im 'advanced editor' landen, der hat rechts unten einen Button um Attachments anzuhängen. Oder den Link oben rechts im Editorfenster benutzen, um vom 'einfachen' Editor zum 'advanced' Editor zu gelangen.
So, habe die beiden Dateien mal hochgeladen.
Ich bekam gestern hier im Forum nur Fehlermeldungen und sollte mich andauernd neu anmelden.
Eure Lösung hatte ich mal ausprobiert, aber es kam dauernd ein Fehler hoch.
Ich habe sie aus dem Dokument (dem Hochgeladenen) wieder entfernt.
So ganz scheine ich das noch nicht verstanden zu haben.
Peter
Ich bekomme immer die Fehlermeldung "Invalid expression".
Hab vielleicht noch eine einfachere Lösung gefunden:
INPUT:
LOAD KundeNr & Vertrag as Key,
KundeNr,
Vertrag,
LieferungVon,
Day(LieferungVon) as Tagvon,
Month(LieferungVon) as Monatvon,
Year(LieferungVon) as Jahrvon,
LieferungBis,
Day(LieferungBis) as Tagbis,
Month(LieferungBis) as Monatbis,
Year(LieferungBis) as Jahrbis,
Wert,
Version
FROM
Test.xlsx
(ooxml, embedded labels, table is Tabelle1)
;
LOAD *, Key as KeyChecked RESIDENT INPUT
WHERE NOT EXISTS(KeyChecked, Key)
ORDER BY KundeNr, Vertrag, Version desc
;
DROP TABLE INPUT;