Abfrage über 3 Tbl's die nur zwei sind...

leegoo

Neuer Benutzer
Beiträge
3
Hallo Zusammen, ich habe da eine Frage:

Datenstruktur:
Service (Tbl:CI) <haben> Systeme (Tbl:CI) <haben> Server (Tbl:CI)

Wie oben dargestellt sind die eigentlichen Daten in der Tbl CI. Die Links, also welcher Service mit welchem System usw. verbunden ist, steht in der Tbl LinkedCI.

Tabellen:
1. Tbl: CI:
2. Tbl: CITypedLinkCILink

Gibt es eine Möglichkeit, dass der Select-Output wie folgt aussieht?

Service Name | System Name | Server Name

Mein jetziger Select liefert mir zwar die gewünschten Informationen aber eben leider auf 4 Zeilen anstelle von einer...

SELECT c.Name, c.Description, c.CIType, c.RecId, pr.ChildRecId
FROM CI AS c
JOIN (
SELECT tp.ParentRecId, tp.ChildRecId
FROM CITypedLinkCILink AS tp
JOIN CI AS cc
ON tp.ChildRecId = cc.RecId
) AS pr
ON c.RecId = pr.ParentRecId

Hat jemand eine Idee?

Vielen Dank für Eure Hilfe!
Leegoo
 
Werbung:

leegoo

Neuer Benutzer
Beiträge
3
Hi PLSQL_SQL

Vielen Dank für Deine Antwort.

Im Moment sieht die Ausgabe so aus (siehe auch angehängtes Bild OutputIST.png):

Name |Description | CIType |
E-Mail Service | | Service |
Finnova PRD | | System |
Finnova PRD | | System |
srvfin001 | | Server |

In dem zugrundeliegenden Tool lassen sich diese Abhängigkeiten dann grafisch und als Baum darstellen:

Service Name | System | Server
E-Mail Service <-> Finnova PRD <-> srvfin001

Das ist soweit ja ganz nett, aber ich benötige zwecks Weiterverarbeitung (Reporting) eine Aufstellung wie die Folgende:


Service Name | System | Server
E-Mail Service | Finnova PRD | srvfin001

Leider komme ich da mit meinen 2 Joins nicht mehr weiter...

Hättest Du da eine Idee?

Vielen Dank für Eure Hilfe
Leegoo
 

Anhänge

  • OutputIST.PNG
    OutputIST.PNG
    12,3 KB · Aufrufe: 2

ukulele

Datenbank-Guru
Beiträge
4.582
Ich bin mir mit der Verkettung nicht ganz sicher ob sie richtig ist, aber im wesentlichen ist das die richtige Vorgehensweise:
Code:
SELECT    c1.Name AS [Service Name],
        c2.Name AS [System Name],
        c3.Name AS [Server Name]
FROM    CI c1,
        CI c2,
        CI c3,
        CITypedLinkCILink tp1,
        CITypedLinkCILink tp2
WHERE    c1.CIType = 'Service'
AND        c2.CIType = 'System'
AND        c3.CIType = 'Server'
AND        c1.RecId = tp1.ParentRecId
AND        tp1.ChildRecId = c2.RecId
AND        c2.RecId = tp2.ParentRecId
AND        tp2.ChildRecId = c3.RecId

PS: Wichtig wäre auch noch, das die Daten immer vollständig vorhanden sind. Fehlt ein Eintrag, wird alles nicht angezeigt. Das kann man natürlich auch noch einbauen, dann muss man nur genau wissen was vorkommt und was man will.
 
Werbung:
Oben