aVogt
Returning Creator

Query: Datensatz mit einem MAX Wert ermitteln

Hallo,

ich habe eine Tabelle in der verschiedene Versionen zu einem Element gespeichert sind. Dazu gibt es Gültigkeitszeiträume.

Also

Element a

  a) gültig vom 01.01.2017 bis 31.01.2017

  b) gültig vom 01.02.2017 bis 05.05.2017

usw.

Nun möchte ich gern auf einfache Art und Weise den Datensatz mit dem "Max" gültig bis ermitteln. Gibt es da in den Queries einen Befehl? ich habe keinen gefunden.

Ich würde mir alle Datensätze zu dem Element holen und dann über eine Schleife den Datensatz mit dem letzten "gültig bis" iterieren. Ist aber aus meiner Sicht etwas umständlich.

Grüße

Andreas

0 Kudos
5 Replies
kohlbrecher
Crownpeak employee

Hallo Andreas,

kann das nicht mit der ORDERCRITERIA gelöst werden? Du würdest dir zumindest die Schleife sparen.

Grüße

Jan

0 Kudos

Hallo Jan,

m.M. nach nicht. Da muss ich auch jedes zurückgegebene Element prüfen.

Bei dem ORDERCRITERIA müsste ich nach der Element Ident und dann nach dem gültig bis sortieren. Ein nur "gültig bis" recht nicht, da ich ja mehrere Elemente habe und zu jedem Element den Eintrag mit dem letzten "gültig bis" ermitteln möchte. Mit dem ORDERCRITERIA würde ich alle die Elemente sortiert nach dem "gültig bis" bekommen. Da muss ich aber bei jedem Eintrag prüfen, ob es sich um ein neues Element handelt oder nicht.

Hab es vielleicht undeutlich geschrieben: Ich habe unterschiedliche Elemente die jeweils unterschiedliche Gültigkeitszeiträume haben.

Element a

  a) gültig vom 01.01.2017 bis 31.01.2017

  b) gültig vom 01.02.2017 bis 05.05.2017

  ...

Element b

  a) gültig vom 05.01.2017 bis 21.01.2017

  b) gültig vom 22.01.2017 bis 01.05.2017

   ...

Element c

  a) gültig vom 05.01.2017 bis 01.06.2017

   ....

....

Herauskommen will ich von jedem Element den Eintrag mit dem letzten/neusten "gültig bis"

In einem Script lässt sich das (mit etwas Aufwand - nicht direkt) schon machen.

Ziel ist es zusätzlich einen Filter (Abfrage) zu erstellen der dann auf eine Datenquelle gesetzt wird. Damit würden in der DQ alle entsprechenden Datensätze angezeigt werden. Das scheint aber absolut nicht zu gehen.

Grüße

Andreas

0 Kudos

Hallo Andreas,

ich bin von einer Abfrage pro Element ausgegangen. Für den Anwendungsfall fällt mir auch keine richtig elegante Lösung ein.

Grüße

Jan

0 Kudos

Hallo Jan,

Ok. Dann muss ich die entsprechenden Datensätze über ein Script ermitteln.

Kann ich diese Datensätze in einer Auswahlliste anzeigen lassen (in einer Absatzvorlage sollte das gehen) und dann eine Aktion mit dem ausgewählten Datensatz anstellen?

Also: Ich will dem Nutzer eine Eingabekomponente anbieten (welche auch immer) in der die speziellen Einträge angezeigt werden. Die Einträge können leider nicht über eine Query erstellt werden (siehe oben). Der Nutzer wählt einen Datensatz aus und dann passiert etwas mit dem Datensatz.

Grüße

Andreas

0 Kudos
aVogt
Returning Creator

Aktualisierung:

Ich erstelle mir nun den Code einer Combobox als XML-Format und lasse diese dann im Script anzeigen.

Stichpunkt:  script.setGomSource(xmlFormSource);

0 Kudos