Datensätze vergleichen innerhalb einer SQL - Tabelle
Hallo liebe Community,
Ich habe mal wieder ein Problem bei einer SQL Abfrage.
Ich habe folgenden Tabellenaufbau in Access:
ID Datum Wert1 Wert2 Name
1 20081210 5,2 4,8 Bla
2 20081211 4,7 4,5 Bla
3 20081212 4,8 4,4 Myl
4 20081213 4,4 4,2 Myl
... ... ... ... ...
Ich möchte nun überprüfen wann der Wert2 von dem Datensatz ID1 größer ist als der Wert1 von dem Datensatz ID2.
Bei diesem Beispiel soll folgendes ausgegeben werden:
ID Datum Wert1 Wert2 Name
2 20081211 4,7 4,5 Bla
Wie muss ich meine SQL Abfrage gestalten damit ich zu diesem Ergebnis komme?
Mfg,
Supergecko
Ich habe mal wieder ein Problem bei einer SQL Abfrage.
Ich habe folgenden Tabellenaufbau in Access:
ID Datum Wert1 Wert2 Name
1 20081210 5,2 4,8 Bla
2 20081211 4,7 4,5 Bla
3 20081212 4,8 4,4 Myl
4 20081213 4,4 4,2 Myl
... ... ... ... ...
Ich möchte nun überprüfen wann der Wert2 von dem Datensatz ID1 größer ist als der Wert1 von dem Datensatz ID2.
Bei diesem Beispiel soll folgendes ausgegeben werden:
ID Datum Wert1 Wert2 Name
2 20081211 4,7 4,5 Bla
Wie muss ich meine SQL Abfrage gestalten damit ich zu diesem Ergebnis komme?
Mfg,
Supergecko
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 103873
Url: https://administrator.de/forum/datensaetze-vergleichen-innerhalb-einer-sql-tabelle-103873.html
Ausgedruckt am: 29.12.2024 um 06:12 Uhr
9 Kommentare
Neuester Kommentar
müsste in deinem Beispiel dann nicht Zeile 4 als Ausgabe kommen?
Dann könntest aj einfach "SELECT MAX(ID) FROM table" schreiben
Dann könntest aj einfach "SELECT MAX(ID) FROM table" schreiben
Fehlt dir nur das Stichwort "Self Join" ?
SELECT t2.id + 1
FROM tabelle as t1, tabelle as t2
WHERE t1.id = t2.id + 1 AND t1.wert2 > t2.wert1
(So in etwa zumindest)
Bei so Joins mit so großen Tabellen sollte man aber vorher lieber mal mit einem kleineren Datenbestand entwickeln und auch genau Abfragepläne und Indices durchgehen sonst legt man den Server auch schonmal lahm ...
SELECT t2.id + 1
FROM tabelle as t1, tabelle as t2
WHERE t1.id = t2.id + 1 AND t1.wert2 > t2.wert1
(So in etwa zumindest)
Bei so Joins mit so großen Tabellen sollte man aber vorher lieber mal mit einem kleineren Datenbestand entwickeln und auch genau Abfragepläne und Indices durchgehen sonst legt man den Server auch schonmal lahm ...
Moin Supergecko,
Bei mir heißt die Tabelle "Werte"
Ein bisschen aussagefähiger wäre die Query so:
Grüße
Biber
Der Kollege liest schon das neue Testament*
Bitte helft ihm...
Na ja... es entspricht mehr meiner Mentalität, ihn ein bissi schmoren zu lassen... hihihi..Bitte helft ihm...
SELECT t2.*
FROM Werte as t1, Werte as t2
WHERE( t1.id+1 = t2.id ) AND t1.wert2 > t2.wert1 ;
Ein bisschen aussagefähiger wäre die Query so:
SELECT t2.ID, t2.Datum, t1.wert2 as Vortagswert2,
t2.wert1 as Tageswert1, t2.wert2 as Tageswert2, t2.name
FROM Werte AS t1, Werte AS t2
WHERE (t1.id+1=t2.id) And t1.wert2>t2.wert1;
Grüße
Biber