2017-05-24 2 views
0

Ich entschuldige mich im Voraus, wenn diese Frage nicht eindeutig ist. Meine SQL-Kenntnisse sind sehr schwach und ich bin nicht sicher, ob diese Frage zu allgemein ist, um eine korrekte Antwort zu haben.Schreiben einer SQL-Abfrage aus einem gegebenen Datenmodell

Ich arbeite an einem Projekt, das Berichte von Hyperion Interactive Reporting (IR) nach OBIEE konvertiert. Mir wurde eine visuelle Darstellung des Datenmodells in IR gegeben, und ich versuche, die entsprechende SQL-Abfrage zu schreiben.

Das Datenmodell sieht wie folgt aus:

A --- = --- B --- = --- C 
\-- +=+ --/ \-- +=+ --/ 

Die = stellt eine innere Verknüpfung; +=+ steht für eine vollständige äußere Verknüpfung. Tabelle B innere Verbindungen und vollständige äußere Verbindungen zu Tabellen A und C. So habe ich vier schließt sich, dass ich versuche, um Stück zusammen: Details meiner Daten

A join B on A.x = B.x 
A full outer join B on A.y = B.y 
B join C on B.x = C.x 
B full outer join C on B.y = C.y 

Ohne Angabe ist es möglich, eine Abfrage zu schreiben, die das Verhalten des Datenmodells oben übereinstimmt? Und wenn ja, wie lautet der richtige/bevorzugte Weg?

+0

einfache Verwendung innere Verknüpfung in einer Abfrage und die Vereinigung mit voller äußeren Abfrage –

+0

@Ritesh Patel beitreten - Hätten Sie etwas dagegen zeigen, wie ich diese Abfrage schreiben würde? Ich bin ein SQL-Neuling –

Antwort

0

Nutzung Vereinigung/union alle wie pro Ihre Anforderung

A join B on A.x = B.x 
B join C on B.x = C.x 

union 

A full outer join B on A.y = B.y 
B full outer join C on B.y = C.y 
+0

letzte Gruppe verwenden, um einen einzelnen Datensatz zu machen –

Verwandte Themen