【发布时间】:2017-05-16 19:39:03
【问题描述】:
我想创建一个视图,让我拥有一些最年长的人的孙子孙女。 问题是我找不到在 sql 中翻译这句话的方法:“谁有一些”。
我只在一张非常基本的桌子上工作:
Person : number(type number)、lastname、firstname、dateofbirth、gender、mother(type number)、father(type number)。
这是我尝试做的:
我试图创建一个视图,让我知道有孙子的最年长的人(但这不是这里要做的)
CREATE OR REPLACE
VIEW oldestone
AS SELECT number FROM persons
WHERE (sysdate-dateofbirth)/365 >= ALL
(SELECT (sysdate-dateofbirth)/365 FROM persons)
AND EXISTS (SELECT * FROM persons
WHERE level=3
START WITH number = number
CONNECT BY PRIOR number = father OR PRIOR numero = mother);
并且有了第一个视图的数量我可以得到孙子:
CREATE OR REPLACE
VIEW grandchildren
AS SELECT firstname,lastname FROM persons
WHERE level=3
START WITH number = (SELECT number FROM oldestone)
CONNECT BY PRIOR number = father OR PRIOR number = mother;
问题是我知道我不是在翻译:有一些的最年长的人的孙子孙女。因为在我第一次看到 number = number 时,我想引用我的 select 子句第 3 行的编号,但我知道事实并非如此。
提前感谢你们的帮助!
克里斯。
【问题讨论】:
标签: oracle tree family-tree