Hallo,
das hab ich verstanden! Aber ich kann die Lösung nicht auf mein Problem anwenden. Die Tabellenstruktur sieht stark vereinfacht wie folgt aus:
Code:
sopinstanceuid | tag | value
----------------+-------------+------
123 | 0008,0008 | test1
123 | 0008,0021 | test2
123 | 0010,0010 | test3
123 | 0018,0090 | test4
456 | 0008,0008 | test11
456 | 0008,0021 | test22
456 | 0010,0010 | test33
789 | 0008,0008 | test111
789 | 0008,0021 | test222
789 | 0010,0010 | test333
789 | 0018,0090 | test444
Die sopinstanceuid fasst sozusagen die tags mit value zu einer logischen Einheit zusammen. Man könnte zwar bei diesem einfachen Beispiel auf die Idee kommen, daraus zwei Tabellen zu machen, praktisch ist aber das unmöglich ...
Man beachte, dass bei sopinstanceuid 456 der tag 0018,0090 fehlt!
Das erwartete Ergbnis sieht dann folgendermaßen aus:
Code:
0008,0008 | 0008,0021 | 0010,0010 | 0018,0090
----------+-------------+------------+----------+
test1 | test2 | test3 | test4
test11 | test22 | test33 |
test111 | test222 | test333 | test444
Die WHERE-CLAUSE sorgt dafür, dass die values in einer Zeile stehen. Ansonsten würde das ein cross-Join werden ...
Die Abfrage von oben erspar ich mir an dieser Stelle! Wie gesagt funktioniert das einwandfrei, wenn alle Unterabfragen Ergebnisse zurückliefern. Es muss doch eine Möglichkeit geben, trotzdem immer alle Ergebnisse auszugeben, auch wenn eine Unterabfrage nichts zurückgibt!
Schon mal Danke für deine/eure Hilfe!
Lesezeichen