Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

aus 4 werten (Datum) im Datensatz das letzte auswerten

Begonnen von Grumpy, September 05, 2018, 12:19:57

⏪ vorheriges - nächstes ⏩

Grumpy

Ich hab eine Tabelle in der je Datensatz 4 Datumswerte eingetragen werden können und im dümmsten Fall leer bleiben.
Mittels einer Abfrage möchte ich das letzte Datum bezogen auf die 4 Spalten in einer neuen Spalte auswerten.
Mit Max habe ich es nicht hinbekommen
:o


Beaker s.a.

Hallo Franz,
Oder besser, das Datenmodell anpassen.

@grumpy
Max wertet keine Zeilen (Datensätze) aus sondern Spalten (Felder).
Die vier Spalten gehören in eine eigene Tabelle als 4 Datensätzen mit
einem Fremdschlüssel auf die vorhandene Tabelle.
Dann funktioniert's auch mit dem Nachbarn, eh ... mit Max.
Zeige uns ein Bild des Beziehungsfensters für weitere Hilfe.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Grumpy

Datenmodell anpassen geht leider net. Hab die Tabelle so übernommen und die einzelnen Datumsangaben werden auch für andere Dinge verarbeitet...muss also damit leben wie es ist.
Die Beziehungen sind lediglich über eine 1:1 Verknüpfung einer ID Tabelle:Ersttab zu ID Tabelle Grunddaten aus der ich die zugehörigen Namen und Vornamen ziehen kann.
(Datenbank liegt auf einem Rechner ohne Internet und kann die nicht rüber holen)

Je ID sind in einer Tabelle Spaltenname: Modul_A, Modul_B.....Modul_D  jeweils Eingabemöglichkeiten für Datumseingaben.

Von diesen maximal 4 Datumswerten benötige ich jeweils das neuste.
Mit Max geht ja nur "Spaltenweise" zu suchen, ich benötige dies aber Zeilenweise....


Lachtaube

Statt der Funktion vom DBWiki würde ich eine Vereinigungsabfrage wählen.SELECT Schluesselfeld, 1 As Position, Datum1 As Termin
FROM   Tabname
WHERE  Datum1 Is Not Null
UNION  ALL
SELECT Schluesselfeld, 2, Datum2
FROM   Tabname
WHERE  Datum2 Is Not Null
UNION  ALL
SELECT Schluesselfeld, 3, Datum3
FROM   Tabname
WHERE  Datum3 Is Not Null
UNION  ALL
SELECT Schluesselfeld, 4, Datum4
FROM   Tabname
WHERE  Datum4 Is Not Null
Diese Abfrage entspricht dann weitestgehend einer normalisierten Tabelle, ist jedoch nicht update-fähig und von Natur aus langsamer als eine echte Tabelle.SELECT Schluesselfeld, Max(Termin) As JuengsterTermin
FROM   Abfragename
Im Notfall (bei Langsamsamkeit in der Ausführung) kann man die Daten dieser Abfrage auch in eine Tabelle in ein Scratch-Backend schreiben und diese Tabelle ggf. ordentlich indizieren und verknüpfen.
Grüße von der (⌒▽⌒)