Contexte
Il s'agit de la construction de certaines vues que nous utiliserons pour les rapports.
J'ai une table des emplacements, les champs clés étant "emplacement" et "parent" .
La structure que ces deux champs créent, au niveau du niveau, est dans le sens de Nom de l'entreprise -> Nom du campus -> Nom du bâtiment -> Nom de l'étage -> Nom de la pièce. Le nom de l'entreprise reste le même et le nom du campus reste le même dans ce cas.
La structure des emplacements ressemble généralement à ceci:
+-----------+
| Org. Name |
+-----+-----+
|
+-----v-----+
+--------------------+|Campus Name|+---+--+-------------+
| +--+--------+ | |
| | | |
| | | |
+--+-----+ +------+-+ +--+----+ +---+---+
+--+| BLDG-01|+--+ | BLDG-02| |BLDG-03| |Grounds|
| +--------+ | +--------+ +-------+ +-------+
+-+------+ +-----+--+
|Floor-01| |Basement+-------+
+-+------+ +--------+ |
| |
| |
| +----------+ +-------+--+
+-+Room 1-001| |Room B-002|
+----------+ +----------+
Chaque emplacement renvoie à son emplacement parent, qui est finalement le nom de l'organisation. Actuellement, il n'y a qu'une seule organisation et un seul campus.
Buts
- J'aimerais pouvoir interroger tous les emplacements situés sous un emplacement donné au niveau "Bâtiment". C'est ainsi que je peux retourner des choses comme le nombre de commandes de travail ont été effectuées pour n'importe quel emplacement dans un bâtiment donné.
- J'aimerais pouvoir déterminer quel sous-emplacement appartient à quel bâtiment . Essentiellement l'inverse; Je voudrais passer de n'importe quel niveau en dessous du niveau du bâtiment et remonter jusqu'à ce qu'est le bâtiment.
- Je voudrais que ce soit en vue . Cela signifie que j'aimerais avoir un tableau qui, pour chaque élément du niveau "bâtiment", répertorie le bâtiment dans la colonne de gauche et tous les emplacements possibles SOUS ce bâtiment dans la colonne de droite. De cette façon, j'aurais une liste que je pourrais interroger à tout moment pour trouver quels emplacements font partie de quel bâtiment.
Tentatives et bien faire les choses
J'ai essayé de le faire à travers des vues horriblement construites, des requêtes UNION, etc. - qui ont toutes semblé être une mauvaise idée. Je sais qu'Oracle possède un mécanisme pour cela via "CONNECT BY"; Je ne sais tout simplement pas comment l'utiliser.
NULL
pour eux? Comment identifiez-vous un «niveau de bâtiment»?