![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: C#
Suche Sub-Select-Abfrage
Hallo zusammen,
ein besserer Titel ist mir leider nicht eingefallen. Ich habe folgende Tabellen in meiner Datenbank: Tabelle 1 (Parameter):
Code:
Tabelle 2 (Prüfungen):
Datum (double) | Wert A | Wert B | ...
Code:
In Tabelle 1 stehen gelegentlich Einträge drinnen. In meinem Fall Änderungen verschiedener Parameter für Prüfungen.
Datum (double) | Wert C | Wert D | ...
In Tabelle 2 stehen die Prüfungsergebnisse: pro Ergebnis eine Zeile. Beispiel (das Datum habe ich als Double-Wert gespeichert, aber ich verwende zum Verständnis hier einen String): Tabelle 1 (Parameter):
Code:
Tabelle 2 (Prüfungen):
14.03.14, 07:23:10 | 1,2 | 2,2 | ...
14.03.14, 07:27:14 | 1,4 | 2,4 | ... 14.03.14, 07:35:05 | 1,3 | 2,3 | ...
Code:
Nun möchte ich eine Abfrage, die mir beide Tabellen wie folgt zurückgibt. Zur Prüfung (Test 1, Test 2, ...) soll immer das am nächsten in der Vergangenheit liegende Datum herangezogen werden:
14.03.14, 07:23:10 | Test 1 | ...
14.03.14, 07:23:11 | Test 2 | ... 14.03.14, 07:23:12 | Test 3 | ... ... 14.03.14, 07:27:15 | Test 1 | ... ...
Code:
Wie funktioniert das genau?
14.03.14, 07:23:10 | Test 1 | 1,2 | 2,2 | ...
14.03.14, 07:23:11 | Test 2 | 1,2 | 2,2 | ... 14.03.14, 07:23:12 | Test 3 | 1,2 | 2,2 | ... ... 14.03.14, 07:27:15 | Test 1 | 1,4 | 2,4 | ... ... Grüße Matze |
AW: Suche Join-Abfrage
Sieht schwer nach Kreuz/Pivottabelle aus. Aber : ohne Gewähr. :shock:
|
AW: Suche Join-Abfrage
Zitat:
Ein Select auf alle Daten die älter oder gleich alt sind, das Neuste als Erstes und dann ein Limit 1 darauf. |
AW: Suche Join-Abfrage
Wenn ich jetzt wüßte worauf Du hinaus willst, und die Daten sind irgendwie auch nicht soo optimal
ins unreine gedacht
Code:
So ungefähr müßte es gehen, ich hoffe daß ich Dich richtig verstanden habe.
select wasimmerduwillst
from tab1 join tab2 on (tab1.datum=tab2.datum) join (select max(tab1.datum) dasdatum from tab1 group by FeldX) Mytab on (mytab.dasdatum=tab1.datum) Gruß K-H |
AW: Suche Join-Abfrage
Mein Beitrag:
Code:
Auf Deutsch:
select t.Datum, p.TestName, t.Daten....
from Pruefungen p cross join Parameter t where t.Datum = (select MAX(datum) from Parameter x where x.Datum < p.Datum) Gib mir für jede Prüfung den Parametersatz, dessen Datum dem Maximum aller Parametersätze entspricht, die vor der Prüfung liegen. Achtung: Bei zwei Parametersätzen mit gleichem Zeitstempel bekommst Du auch zwei Zeilen. Alternative Schreibweise:
Code:
select t.Datum, p.TestName, t.Daten....
from Pruefungen p , Parameter t where t.Datum = (select MAX(datum) from Parameter x where x.Datum < p.Datum) |
AW: Suche Join-Abfrage
Hallo zusammen,
vielen Dank! :thumb: Ich werde beide Varianten ausprobieren. In den kommenden 2 Wochen werde ich nicht dazu kommen, aber danach melde ich mich. Zitat:
Stimmt, ein Sub-Select wäre vermutlich das richtige. Ich korrigiere das im Titel. Grüße Matze |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz