背景
这是为了构造一些我们将用于报告的视图。
我有一张位置表,关键字段是“ location”和“ parent”。
这两个字段在层次上创建的结构与公司名称->校园名称->建筑物名称->楼层名称->房间名称相似。在这种情况下,公司名称保持不变,园区名称保持不变。
位置的结构通常如下所示:
+-----------+
| Org. Name |
+-----+-----+
|
+-----v-----+
+--------------------+|Campus Name|+---+--+-------------+
| +--+--------+ | |
| | | |
| | | |
+--+-----+ +------+-+ +--+----+ +---+---+
+--+| BLDG-01|+--+ | BLDG-02| |BLDG-03| |Grounds|
| +--------+ | +--------+ +-------+ +-------+
+-+------+ +-----+--+
|Floor-01| |Basement+-------+
+-+------+ +--------+ |
| |
| |
| +----------+ +-------+--+
+-+Room 1-001| |Room B-002|
+----------+ +----------+
每个位置都链接回其父位置,该父位置最终是组织名称。当前,只有一个组织和一个校园。
目标
- 我希望能够在“建筑物”级别查询任何给定位置下方的所有位置。这样一来,我可以返回给定建筑物内任何位置执行的工作单数量之类的信息。
- 我希望能够确定哪个子位置属于哪个建筑物。本质上是相反的;我想从建筑物下面的任何一层去追溯到建筑物是什么。
- 我希望这是一个观点。那就是说,我想有一个表格,该表格针对“建筑物”级别的每个项目,在左侧栏中列出该建筑物,并在右侧栏中列出该建筑物下的所有可能位置。这样,我将有一个列表,可以随时查询以查找哪些位置属于哪个建筑物。
尝试并做对
我试图通过可怕的构造视图,UNION查询等来做到这一点-所有这些似乎都不是一个好主意。我知道Oracle通过“ CONNECT BY”拥有一种机制。我只是不确定如何利用它。
@a_horse_with_no_name从逻辑上讲,我认为“建筑物”级别将是任何以其校园名称为父代的东西,即任何以“ MAINCAMPUS”为父代的东西。所有节点的根都是“ COMPANYNAME”,它是“ MAINCAMPUS”的父级,所有建筑物(加上“地面”)都以MAINCAMPUS作为父级。
—
SeanKilleen
哇!您是如何创建的!Google将为“ SQL中的邻接模型”做好一切准备
—
-srini.venigalla,2012年
PS,对于那些对我如何制作图表感兴趣的人,我使用了一个漂亮的小网站asciiflow.com-我非常喜欢这种情况。
—
SeanKilleen
NULL
他们的父母吗?您如何确定“建筑水平”?