Lý lịch
Đây là để xây dựng một số quan điểm chúng tôi sẽ sử dụng để báo cáo.
Tôi có một bảng các vị trí, các trường chính là "vị trí" và "cha mẹ" .
Cấu trúc mà hai trường này tạo ra, theo cấp độ, nằm dọc theo dòng của Tên công ty -> Tên trường -> Tên tòa nhà -> Tên tầng -> Tên phòng. Tên công ty vẫn giữ nguyên và tên trường vẫn giữ nguyên trong trường hợp này.
Cấu trúc của các vị trí thường trông như thế này:
+-----------+
| Org. Name |
+-----+-----+
|
+-----v-----+
+--------------------+|Campus Name|+---+--+-------------+
| +--+--------+ | |
| | | |
| | | |
+--+-----+ +------+-+ +--+----+ +---+---+
+--+| BLDG-01|+--+ | BLDG-02| |BLDG-03| |Grounds|
| +--------+ | +--------+ +-------+ +-------+
+-+------+ +-----+--+
|Floor-01| |Basement+-------+
+-+------+ +--------+ |
| |
| |
| +----------+ +-------+--+
+-+Room 1-001| |Room B-002|
+----------+ +----------+
Mỗi vị trí liên kết trở lại vị trí mẹ của nó, cuối cùng là tên tổ chức. Hiện tại, chỉ có một tổ chức và một khuôn viên.
Bàn thắng
- Tôi muốn có thể truy vấn tất cả các vị trí bên dưới bất kỳ vị trí nào ở cấp độ "Tòa nhà". Điều này là để tôi có thể trả về những thứ như có bao nhiêu công việc đã được thực hiện cho bất kỳ vị trí nào trong một tòa nhà nhất định.
- Tôi muốn có thể xác định vị trí phụ thuộc về tòa nhà nào . Thực chất là ngược lại; Tôi muốn đi từ bất kỳ cấp nào bên dưới cấp tòa nhà và tìm lại xem tòa nhà là gì.
- Tôi muốn điều này được trong một cái nhìn . Điều đó có nghĩa là, tôi muốn có một bảng cho mọi hạng mục ở cấp độ "tòa nhà", liệt kê tòa nhà ở cột bên trái và tất cả các vị trí có thể DƯỚI tòa nhà đó ở cột bên phải. Bằng cách này, tôi có một danh sách mà tôi có thể truy vấn bất cứ lúc nào để tìm vị trí nào là một phần của tòa nhà đó.
Nỗ lực và làm đúng
Tôi đã cố gắng thực hiện điều này thông qua các quan điểm được xây dựng khủng khiếp, các truy vấn của UNION, v.v. - tất cả đều có vẻ như là một ý tưởng tồi. Tôi biết Oracle sở hữu một cơ chế cho việc này thông qua "CONNECT BY"; Tôi chỉ không chắc làm thế nào để sử dụng nó.
NULL
cho họ? Làm thế nào để bạn xác định một "cấp độ xây dựng"?