oracle中 建筑项目总包 转发的问题,类似于父子关系类,请大神指点

bdbody 2019-05-15 05:03:02



类似于这样的,建设方、施工方,然后施工方转包给了另外一个施工方,这个时候总包也成了建设方的意思,可能存在多个转包,现在的需求是能否罗列出总包a 分包 b 合同名称 合同金额 f g h以此类推



然后比如说B也转包给了C和D



如何罗列出 a 的总包是谁 这些总包又分包给了谁,谁最后干了这个工程,每个环节都是多少金额?
...全文
170 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZJHZ_叶 2019-05-20
  • 打赏
  • 举报
回复
SELECT JSF,SGF ,rnum,1||sys_connect_by_path(rnum,'/')
FROM (select JSF,SGF,row_number() over(partition by jsf order by sgf) rnum
from table_test)
START WITH JSF='A'
connect by prior SGF=JSF
order siblings by SGF
这样?如果不要/ replace掉
nayi_224 2019-05-20
  • 打赏
  • 举报
回复
别搞总包、转包施工方什么的具体业务概念。就这种问题,你把建表语句、测试数据、结果都发出来,用不到一分钟就能搞定。可我到现在都不知道你在说什么,也懒得去猜。
bdbody 2019-05-20
  • 打赏
  • 举报
回复
引用 3 楼 weixin_45069503 的回复:
这样? select 建设方,施工方,lpad(施工方,length(施工方)+level-1,'-') from sc_module start with 建设方=A connect by prior 施工方=建设方 order siblings by 施工方
大神,我加入合同金额的话就报错了
引用 3 楼 ZJHZ_叶 的回复:
这样? select 建设方,施工方,lpad(施工方,length(施工方)+level-1,'-') from sc_module start with 建设方=A connect by prior 施工方=建设方 order siblings by 施工方
大神,我按照您的写法操作成功!!! 但是有个新问题,我现在需要整理出两列数据,一个是施工方id 一个是建设方id,来满足后续做框架图的数据结构,遇到一个难题。 如何给他们分层级,我举例说明:比如a企业是建设方 那我就写 施工方id为1 建设方id 就为空 保证a企业是建设方 比如a 把工程分包给b企业 那b企业的施工方就是11 建设方id为1 来实现这种层级的效果,现在问题是 如果 b企业把同一个工程同时分包给3个企业 e f g 如何通过函数或者sql实现给e f g 分别赋值呢? 最后结果是 施工方id 建设方id 建设方名称 1 a企业 11 1 b企业 111 11 e企业 112 11 f企业 113 11 g企业
ZJHZ_叶 2019-05-16
  • 打赏
  • 举报
回复
这样?
select 建设方,施工方,lpad(施工方,length(施工方)+level-1,'-') from sc_module
start with 建设方=A
connect by prior 施工方=建设方
order siblings by 施工方
bdbody 2019-05-16
  • 打赏
  • 举报
回复
[quote=引用 1 楼 weixin_45069503 的回复:] 上面的图除了排序没看出区别,原表什么样,需要结果什么样?[/quote] 原表就是excel的表样,我想导入oracle数据库中。 需要的表格都行啊,只要能展示出来就行 如果有那种 树形图就好
ZJHZ_叶 2019-05-16
  • 打赏
  • 举报
回复
上面的图除了排序没看出区别,原表什么样,需要结果什么样?
yaiger 2019-05-16
  • 打赏
  • 举报
回复
3楼写的是lpad, 是L的小写,不是i
bdbody 2019-05-16
  • 打赏
  • 举报
回复
提示ipad 标识无效,然后施工方高亮

17,082

社区成员

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

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