oracle父子节点问题

qq_28398475 2017-12-26 10:54:46
祖父--->父类--->子类

祖父1
父类1(状态为:已租)
子类101
父类2
子类201(状态为:已租)
子类202 (状态为:已租)

现在要求直接子类都为"已租"的话;父类为"已租",孙子类都为"已租"则该类为"已租",否则为"部分已租","未租";sql要怎么写

...全文
244 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_28398475 2017-12-27
  • 打赏
  • 举报
回复
引用 楼主 qq_28398475 的回复:
祖父--->父类--->子类 祖父1 父类1(状态为:已租) 子类101 父类2 子类201(状态为:已租) 子类202 (状态为:已租) 现在要求直接子类都为"已租"的话;父类为"已租",孙子类都为"已租"则该类为"已租",否则为"部分已租","未租";sql要怎么写
表结构和测试数据如下: create table house_mgr( id number(15), parent_id number(15), house_name varchar2(255), house_type number(1), house_status varchar2(20) default '未租' ); comment on column house_mgr.id is '主键'; comment on column house_mgr.parent_id is '父id'; comment on column house_mgr.house_name is '房产名称'; comment on column house_mgr.house_type is '房产类型:0楼栋,1房屋,2房间'; comment on column house_mgr.house_status is '房产状态:已租,未租'; insert into house_mgr values(1,0,'楼栋1',0,'未租'); insert into house_mgr values(2,1,'楼栋1房屋1',1,'已租'); insert into house_mgr values(3,1,'楼栋1房屋2',1,'未租'); insert into house_mgr values(4,2,'楼栋1房屋1房间1',2,'未租'); insert into house_mgr values(5,3,'楼栋1房屋2房间1',2,'已租'); insert into house_mgr values(6,3,'楼栋1房屋2房间2',2,'已租');
qq_28398475 2017-12-27
  • 打赏
  • 举报
回复
引用 3 楼 qq646748739 的回复:
非常典型的递归操作,其实网上搜索下start with + connect by prior可以自己解决这个问题。 还能学到很多东西,何乐而不为呢?
start with + connect by prior只能当前节点的所有父节点、或所有子节点 不能满足我的需求
qq_28398475 2017-12-27
  • 打赏
  • 举报
回复
start with + connect by prior只能当前节点的所有父节点、或所有子节点 不能满足我的需求
碧水幽幽泉 2017-12-26
  • 打赏
  • 举报
回复
非常典型的递归操作,其实网上搜索下start with + connect by prior可以自己解决这个问题。 还能学到很多东西,何乐而不为呢?
碧水幽幽泉 2017-12-26
  • 打赏
  • 举报
回复
别人无法猜测出你的表字段和数据场景等信息。
碧水幽幽泉 2017-12-26
  • 打赏
  • 举报
回复
给出表结构和测试数据。

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧