sfondo
Questo è per la costruzione di alcune viste che useremo per i rapporti.
Ho una tabella di posizioni, i campi chiave sono "posizione" e "genitore" .
La struttura creata da questi due campi, a livello di livello, è simile a Nome azienda -> Nome campus -> Nome edificio -> Nome piano -> Nome sala. Il nome dell'azienda rimane lo stesso e il nome del campus rimane lo stesso in questo caso.
La struttura delle posizioni in genere si presenta così:
+-----------+
| Org. Name |
+-----+-----+
|
+-----v-----+
+--------------------+|Campus Name|+---+--+-------------+
| +--+--------+ | |
| | | |
| | | |
+--+-----+ +------+-+ +--+----+ +---+---+
+--+| BLDG-01|+--+ | BLDG-02| |BLDG-03| |Grounds|
| +--------+ | +--------+ +-------+ +-------+
+-+------+ +-----+--+
|Floor-01| |Basement+-------+
+-+------+ +--------+ |
| |
| |
| +----------+ +-------+--+
+-+Room 1-001| |Room B-002|
+----------+ +----------+
Ogni posizione ricollega alla posizione principale, che in definitiva è il nome dell'organizzazione. Attualmente, esiste una sola organizzazione e un campus.
obiettivi
- Vorrei poter eseguire una query su tutte le posizioni al di sotto di una determinata posizione a livello di "Edificio". Questo è così che posso restituire cose come quanti ordini di lavoro sono stati eseguiti per qualsiasi posizione all'interno di un determinato edificio.
- Vorrei essere in grado di determinare quale sotto-posizione appartiene a quale edificio . Essenzialmente il contrario; Vorrei andare da qualsiasi livello al di sotto del livello dell'edificio e risalire a quello che è l'edificio.
- Vorrei che questo fosse in vista . Ciò significa che vorrei avere una tabella che per ogni elemento a livello di "edificio", elenca l'edificio nella colonna di sinistra e tutte le possibili posizioni SOTTO quell'edificio nella colonna di destra. In questo modo avrei un elenco che potrei richiedere in qualsiasi momento per trovare quali posizioni fanno parte di quale edificio.
Tentativi e farlo nel modo giusto
Ho tentato di farlo attraverso viste orribilmente costruite, domande UNION, ecc., Che sono sembrate tutte una cattiva idea. So che Oracle possiede un meccanismo per questo attraverso "CONNECT BY"; Non sono sicuro di come usarlo.
NULL
per loro? Come si identifica un "livello di costruzione"?