Thomas Bauer
Neuer Benutzer
- Beiträge
- 2
Hallo,
folgende Tabelle
Es gibt also beliebig viele Messungen (typischerweise so um die 50) welche zu beliebigen Zeitpunkten (viele auch gleichzeitig) einen Messwert in die Tabelle ablegen. Nun muß ich das Ganze umordnen, und zwar so:
Am Beispiel von nur 2 verschiedenen Messungen hab ich auch herausgefunden wie das hinzubekommen wäre:
Schritt 1: Alle Einträge jeder Messung holen
Schritt 2: Einen Full Outer Join machen. Da MySQL das ja nicht kann wird hier ein LEFT/RIGHT Join gemacht und dann mit UNION zusammengeführt
Da das Ganze aber nun mit sagen wir mal 50 subselects / tempor. Tabellen gemacht werden müsste bekäme ich hier ein SQL Statement gigantischen ausmaßen und ich denke nicht, dass das die Lösung sein kann/soll.
Danke & Gruß
folgende Tabelle
Code:
Zeit | Messung | Wert
===========================
13:18:30 | Messung 1 | 100
13:18:30 | Messung 2 | 10
13:18:30 | Messung 3 | 500
13:18:31 | Messung 2 | 20
13:18:31 | Messung 4 | 1000
13:18:32 | Messung 1 | 200
13:18:32 | Messung 2 | 30
13:18:33 | Messung 3 | 600
13:18:33 | Messung 2 | 40
Es gibt also beliebig viele Messungen (typischerweise so um die 50) welche zu beliebigen Zeitpunkten (viele auch gleichzeitig) einen Messwert in die Tabelle ablegen. Nun muß ich das Ganze umordnen, und zwar so:
Code:
Zeit | Messung 1 | Messung 2 | Messung 3 | Messung 4
13:18:30 | 100 | 10 | 500 | NULL
13:18:31 | NULL | 20 | NULL | 1000
13:18:32 | 200 | 30 | NULL | NULL
13:18:33 | NULL | 40 | 600 | NULL
Am Beispiel von nur 2 verschiedenen Messungen hab ich auch herausgefunden wie das hinzubekommen wäre:
Schritt 1: Alle Einträge jeder Messung holen
Code:
select `Zeit`, `Wert` as 'Messung 1' from `Messwerttabelle` where `Messung` = 'Messung 1'
select `Zeit`, `Wert` as 'Messung 2' from `Messwerttabelle` where `Messung` = 'Messung 2'
Schritt 2: Einen Full Outer Join machen. Da MySQL das ja nicht kann wird hier ein LEFT/RIGHT Join gemacht und dann mit UNION zusammengeführt
Code:
SELECT `Zeit`, `Messung 1`, `Messung 2` FROM (select `Zeit`, `Wert` as 'Messung 1' from `test` where `Messung` = 'Messung 1') as t1
LEFT JOIN (select `Zeit`, `Wert` as 'Messung 2' from `test` where `Messung` = 'Messung 2') as t2 USING(`Zeit`)
UNION
SELECT `Zeit`, `Messung 1`, `Messung 2` FROM (select `Zeit`, `Wert` as 'Messung 1' from `test` where `Messung` = 'Messung 1') as t1
RIGHT JOIN (select `Zeit`, `Wert` as 'Messung 2' from `test` where `Messung` = 'Messung 2') as t2 USING(`Zeit`)
ORDER BY `Zeit`
Da das Ganze aber nun mit sagen wir mal 50 subselects / tempor. Tabellen gemacht werden müsste bekäme ich hier ein SQL Statement gigantischen ausmaßen und ich denke nicht, dass das die Lösung sein kann/soll.
Danke & Gruß