Hintergrund
Dies dient zum Erstellen einiger Ansichten, die wir für die Berichterstellung verwenden.
Ich habe eine Tabelle mit Standorten, wobei die Schlüsselfelder "Standort" und "Eltern" sind .
Die Struktur, die diese beiden Felder auf Ebenenebene erstellen, entspricht dem Firmennamen -> Campusname -> Gebäudename -> Etagenname -> Raumname. Der Firmenname bleibt derselbe und der Name des Campus bleibt in diesem Fall derselbe.
Die Struktur der Standorte sieht im Allgemeinen folgendermaßen aus:
+-----------+
| Org. Name |
+-----+-----+
|
+-----v-----+
+--------------------+|Campus Name|+---+--+-------------+
| +--+--------+ | |
| | | |
| | | |
+--+-----+ +------+-+ +--+----+ +---+---+
+--+| BLDG-01|+--+ | BLDG-02| |BLDG-03| |Grounds|
| +--------+ | +--------+ +-------+ +-------+
+-+------+ +-----+--+
|Floor-01| |Basement+-------+
+-+------+ +--------+ |
| |
| |
| +----------+ +-------+--+
+-+Room 1-001| |Room B-002|
+----------+ +----------+
Jeder Standort ist mit dem übergeordneten Standort verknüpft, der letztendlich der Name der Organisation ist. Derzeit gibt es nur eine Organisation und einen Campus.
Tore
- Ich möchte in der Lage sein, alle Standorte unter einem bestimmten Standort auf der Ebene "Gebäude" abzufragen. Auf diese Weise kann ich beispielsweise zurückgeben, wie viele Arbeitsaufträge für einen Standort innerhalb eines bestimmten Gebäudes ausgeführt wurden.
- Ich möchte feststellen können, welcher Unterort zu welchem Gebäude gehört . Im Wesentlichen das Gegenteil; Ich möchte von jeder Ebene unterhalb der Gebäudeebene zurückgehen und zurückverfolgen, was das Gebäude ist.
- Ich möchte, dass dies in einer Ansicht ist . Das heißt, ich hätte gerne eine Tabelle, in der für jedes Element auf der Ebene "Gebäude" das Gebäude in der linken Spalte und alle möglichen Standorte UNTER diesem Gebäude in der rechten Spalte aufgeführt sind. Auf diese Weise hätte ich eine Liste, die ich jederzeit abfragen könnte, um herauszufinden, welche Standorte zu welchem Gebäude gehören.
Versuche und es richtig machen
Ich habe versucht, dies durch schrecklich konstruierte Ansichten, UNION-Abfragen usw. zu tun - was alles eine schlechte Idee zu sein schien. Ich weiß, dass Oracle durch "CONNECT BY" einen Mechanismus dafür besitzt. Ich bin mir nur nicht sicher, wie ich davon Gebrauch machen soll.
NULL
für sie? Wie identifizieren Sie eine "Gebäudeebene"?