SQL - nur zeitlich letzter Wert bei gleichen Spalteninhalt

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: SQL - nur zeitlich letzter Wert bei gleichen Spalteninhalt

Re: SQL - nur zeitlich letzter Wert bei gleichen Spalteninhalt

von Stephan » Fr, 16.07.2021 09:37

Hallo Hiker,
Hallo Robert,

vielen Dank für die Unterstützung. Ich werde eure Vorschläge ausprobieren sobald ich Zeit habe.


Gruß
Stephan

Re: SQL - nur zeitlich letzter Wert bei gleichen Spalteninhalt

von RobertG » Fr, 16.07.2021 08:34

Hallo Stefan,

das Anzeigen der ID macht das Ganze etwas schwieriger, geht aber auch:

Code: Alles auswählen

SELECT 
(SELECT "ID" FROM "Tabelle" WHERE "EinWert" = "a"."Einwert" AND "LetzteÄnderung" = "a"."LetzteÄnderung") AS "ID", 
"a".* 
FROM 
(SELECT "EinWert", MAX( "LetzteÄnderung" ) AS "LetzteÄnderung" FROM "test"."Tabelle" "Tabelle" GROUP BY "EinWert") AS "a"
Hier noch eine andere Variante, die nicht daran scheitert, wenn "LetzteÄnderung" bei "EinWert" eventuell doppelt vorkommt:

Code: Alles auswählen

SELECT "b".* 
FROM (SELECT "EinWert", MAX( "LetzteÄnderung" ) AS "LetzteÄnderung" FROM "test"."Tabelle" "Tabelle" GROUP BY "EinWert") AS "a", 
(SELECT * FROM "test"."Tabelle") AS "b" 
WHERE "b"."EinWert" = "a"."Einwert" AND "b"."LetzteÄnderung" = "a"."LetzteÄnderung"
Gruß

Robert

Re: SQL - nur zeitlich letzter Wert bei gleichen Spalteninhalt

von Hiker » Fr, 16.07.2021 00:21

SQL - nur zeitlich letzter Wert bei gleichen Spalteninhalt

von Stephan » Do, 15.07.2021 21:25

Hallo,

die Frage ist wohl etwas unverständlich aber ich brauche eine Abfrage die mir aus folgender Tabelle:

Code: Alles auswählen

ID   EinWert   LetzteÄnderung 
--------------------------------
001  ABC       17.01.2021
002  DEF       18.01.2021 
003  GHI       12.02.2021
004  ABC       15.07.2021
005  GHI       12.07.2021
006  ABC       12.07.2021
das als Rückgabe liefert:

Code: Alles auswählen

ID   EinWert   LetzteÄnderung 
--------------------------------
002  DEF       18.01.2021 
004  ABC       15.07.2021
005  GHI       12.07.2021
also für jeden überhaupt in Spalte "EinWert" vorkommenden Wert den jeweils neuesten Wert (wenn es mehrere Einträge gibt) oder den einzigen Wert (wenn es nur einen 'gleichen' Eintrag gibt)

Datenbank ist MySQL.


Ich fürchte das ist ziemlich schwierig ...



Gruß
Stephan

Nach oben