Mikey
Mitglied
Hallo erst einmal...
Ich kriesel seit Tagen an folgendem Problem und würd das mal gerne ausdiskutieren...
Ich habe Daten mit Gültigkeit vorliegen, Beispiel (vereinfacht):
Nun möchte ich nur die Werte (pro ID) haben, die aktuell sind, im Beispiel also wäre das (u.a.) wert2.
Das ist mein letzter Stand, der mir allerdings wert1 und wert2 zurückgibt (wobei wert1 ja nicht gewünscht ist)
Mit GROUP BY ID bekomme ich nur den ersten Treffer (hier: wert1) zurück. Ich kann aber nicht wissen, in welcher Reihenfolge die Werte in der Tabelle abgelegt sind.
Ich würde theoretisch folgendes machen, was aber nicht funktioniert ("falsche Verwendung der GROUP-Funktion"):
Langsam raucht mir ganz schön der Schädel, nachdem ich unzählige Beiträge durchforscht und nix gefunden habe
Ich nehme alle konstruktiven Vorschläge dankend an!
Micha
Ich kriesel seit Tagen an folgendem Problem und würd das mal gerne ausdiskutieren...
Ich habe Daten mit Gültigkeit vorliegen, Beispiel (vereinfacht):
Code:
ID | gueltig_ab | werte
----+------------+------
001 | 2000-01-01 | wert1
001 | 2002-01-01 | wert2
001 | 2005-01-01 | wert3
002 | ....
Nun möchte ich nur die Werte (pro ID) haben, die aktuell sind, im Beispiel also wäre das (u.a.) wert2.
Code:
SELECT DISTINCT *
FROM tabelle
WHERE gueltig_ab<CURDATE()
ORDER BY ID, gueltig_ab desc;
Das ist mein letzter Stand, der mir allerdings wert1 und wert2 zurückgibt (wobei wert1 ja nicht gewünscht ist)
Mit GROUP BY ID bekomme ich nur den ersten Treffer (hier: wert1) zurück. Ich kann aber nicht wissen, in welcher Reihenfolge die Werte in der Tabelle abgelegt sind.
Ich würde theoretisch folgendes machen, was aber nicht funktioniert ("falsche Verwendung der GROUP-Funktion"):
Code:
SELECT *
FROM tabelle
WHERE gueltig_ab<CURDATE() AND gueltig_ab=MAX(gueltig_ab)
GROUP BY ID;
Langsam raucht mir ganz schön der Schädel, nachdem ich unzählige Beiträge durchforscht und nix gefunden habe

Ich nehme alle konstruktiven Vorschläge dankend an!
Micha