Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#1

[Oracle:SQL] Subquery mit Bezug auf "Superquery" f

  Alt 10. Nov 2009, 22:25
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.
  Mit Zitat antworten Zitat