Woodz
Lieutenant
- Registriert
- Apr. 2009
- Beiträge
- 701
Hallo.
Ich habe zwei MySQL Tabellen "Stundenwert" und "Extremwerte".
In der Tabelle "Stundenwerte" werden z.B. für 3 Punkte die Temperaturen jede Stunde abgelegt:
Beispiel (verkürzt):
Die zweite Tabelle Extremwerte besitzt eine Spalte "Maximumtemperatur".
Ist es möglich eine SQL-Abfrage zu erstellen, die mir für jedes Datum für jeden Punkt den Maximalwert ermittelt und diesen Anschließend via "UPDATE" in die Spalte Extremwerte.Maximumtemperatur einträgt?
Ich kann zwar über:
Eine Tabelle (tbl_a) erzeugen, die mir für jedes Datum für jeden Punkt den Maximalwert ermittelt.
Aber ist es anschießend möglich über diese Tabelle (tbl_a) eine UPDATE Funktion laufen zu lassen:
Die mir dann für jeden Punkt und jedes Datum den Maximalwert in die Spalte"Extremwerte.Maxumumtemperatur" einträgt?
Ich hoffe, ihr habt mein Problem verstanden und meine SQL Syntax ist halbwegs richtig. Ich habe mir das Beispiel gerade spontan aus den Rippen geleiert.
Beste Grüße
Ich habe zwei MySQL Tabellen "Stundenwert" und "Extremwerte".
In der Tabelle "Stundenwerte" werden z.B. für 3 Punkte die Temperaturen jede Stunde abgelegt:
Beispiel (verkürzt):
Pkt_ID | Termin | Datum | Wert |
pkt01 | 2021-10-10 01:00:00 | 2021-10-10 | 4.5 |
pkt01 | 2021-10-10 02:00:00 | 2021-10-10 | 5.1 |
pkt02 | 2021-10-10 01:00:00 | 2021-10-10 | 3.5 |
pkt02 | 2021-10-10 02:00:00 | 2021-10-10 | 6.2 |
pkt03 | 2021-10-10 01:00:00 | 2021-10-10 | 2.3 |
pkt03 | 2021-10-10 02:00:00 | 2021-10-10 | 3.3 |
pkt01 | 2021-10-11 01:00:00 | 2021-10-11 | 1.5 |
pkt01 | 2021-10-11 02:00:00 | 2021-10-11 | 2.3 |
pkt02 | 2021-10-11 01:00:00 | 2021-10-11 | 6.4 |
pkt02 | 2021-10-11 02:00:00 | 2021-10-11 | 7.1 |
pkt03 | 2021-10-11 01:00:00 | 2021-10-11 | 3.3 |
pkt03 | 2021-10-11 02:00:00 | 2021-10-11 | 1.1 |
Die zweite Tabelle Extremwerte besitzt eine Spalte "Maximumtemperatur".
Pkt_ID | Datum | Maximumtemperatur |
pkt01 | 2021-10-10 | 5.1 |
pkt02 | 2021-10-10 | 6.2 |
pkt03 | 2021-10-10 | 3.3 |
pkt01 | 2021-10-11 | 2.3 |
pkt02 | 2021-10-11 | 7.1 |
pkt03 | 2021-10-11 | 3.3 |
Ist es möglich eine SQL-Abfrage zu erstellen, die mir für jedes Datum für jeden Punkt den Maximalwert ermittelt und diesen Anschließend via "UPDATE" in die Spalte Extremwerte.Maximumtemperatur einträgt?
Ich kann zwar über:
SQL:
(SELECT Stundenwerte.Pkt as pkt_id,
Stundenwerte.Datum as datum,
MAX(Stundenwerte.Wert) as maxWert
FROM Stundenwerte
WHERE Stundenwerte.Wert is not NULL
GROUP BY Stundenwerte.Datum, Stundenwerte.Pkt_ID) tbl_a
Eine Tabelle (tbl_a) erzeugen, die mir für jedes Datum für jeden Punkt den Maximalwert ermittelt.
Aber ist es anschießend möglich über diese Tabelle (tbl_a) eine UPDATE Funktion laufen zu lassen:
SQL:
UPDATE Extremwerte
SET Maximumtemperatur = tbl_a.maxWert
WHERE Maximumtemperatur.Datum = tbl_a.datum AND
Maximumtemperatur.pkt_ID = tbl_a.pkt_id;
Die mir dann für jeden Punkt und jedes Datum den Maximalwert in die Spalte"Extremwerte.Maxumumtemperatur" einträgt?
Ich hoffe, ihr habt mein Problem verstanden und meine SQL Syntax ist halbwegs richtig. Ich habe mir das Beispiel gerade spontan aus den Rippen geleiert.

Beste Grüße