Ich habe eine Tabelle bei der Messwerte untereinander gespeichert werden. Jeder Messwert ist durch zwei IDs und den Zeitstempel eindeutig definiert (die drei Spalten sind unique). Die Tabelle hat quasi folgende 4 Spalten:
ID1, ID2, Zeit, Messwert
Jetzt möchte ich ein View erstellen, welches für eine bestimmte ID1 Alle Messwerte über die Zeit auflistet, als Spalten soll dabei ID2 eingesetzt werden. Das sieht dann in etwa so aus:
Code:
Für eine bestimmte ID1 (z.B. 5000)
Zeit ID2=3000 (Alias1) ID2=3002 (Alias2) ...
10:00 Messwert=2 Messwert=4000
10:01 Messwert=1 Messwert=2000
10:02 Messwert=1,4 Messwert=4000
...
Das dies zumindest irgendwie möglich ist, habe ich in einer fremden Datenbankstrukutr in MS-
SQL-Express gesehen. Ansonsten hätte ich dies erst gar nicht versucht.
In Oracle geht es mit diesem Ansatz zumindest nicht:
SQL-Code:
Select Zeit,
(Select Messwert from mytable
where ID2=3001) as Alias1,
(Select Messwert from mytable
where ID2=3002) as Alias2
from mytable
where ID1=5000
Die
DB stellt fest, dass im Subquery mehrere Ergebnisse kommen. Is klar, denn zu einer ID" in mytable gibt es mehr als einen Messwert.
Jetzt kann ich natürlich noch die ID1 mit ins Subquery nehmen, bringt aber auch nichts, da ja zu einer Kombination von den beiden IDs es ja viele MEsswerte zu unterschiedlichen Zeiten gibt. Allerdings möchte ich ja pro Zeile nur den Messwert, welcher zum Zeitwert aus dem übergeordneten
Query (Superquery) gehört.
Wie geht das in Oracle?
Vielen Dank im Vorraus
Sirius
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.