天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 2815|回复: 10

[已解决] 如何用一条SQL提取某流程参与者及其所有上级

[复制链接]
云南腾俊 发表于 2013-4-3 11:26:05 | 显示全部楼层 |阅读模式
本帖最后由 spiral 于 2013-5-8 15:18 编辑

如何用一条SQL提取某流程参与者及其所有上级(包含上级的上级,上级的上级的上级。。。)
谢谢。
shary 发表于 2013-4-3 11:42:23 | 显示全部楼层
您好,请问您的具体业务需求是什么。以便我们结合平台给您提供最好的解决方案。
 楼主| 云南腾俊 发表于 2013-4-3 11:43:54 | 显示全部楼层
在视图中,让流程参与者及其上级都能看见参与的流程清单
spiral 发表于 2013-4-3 11:54:39 | 显示全部楼层
请稍等,我这边研究一下,有新进展后回复您
spiral 发表于 2013-4-3 14:11:26 | 显示全部楼层
本帖最后由 spiral 于 2013-4-3 17:51 编辑

在oracle下,使用start with  connect by prior即可
  1. select * from t_user start with id = '11e1-7f98-dc0c84d6-a04d-05b43c063ac2' connect by prior id = superior
复制代码
在sqlserver下,只能使用存储过程完成,大致代码见下:
  1. with cte as
  2. (
  3.     select *, 0 as lvl from t_user
  4.     where Id = '11e0-4b86-4e2e6951-a06c-ade030ea555d'
  5.     union all
  6.     select d.*,lvl + 1 from cte c inner join t_user d
  7.     on c.Id = d.superior
  8. )
  9. select * from cte
复制代码
在mysql下,只能使用存储过程以及递归完成,大致可以参考下帖:
http://blog.csdn.net/ACMAIN_CHM/article/details/4142971
spiral 发表于 2013-4-8 10:53:49 | 显示全部楼层
楼主反馈使用的是mysql数据库,该方法比较难以完成
已告知楼主通过Iscript在函数库递归返回所有上级用户的ID,然后在视图过滤中拼凑为sql后,然后再查询
目前楼主正常尝试
shary 发表于 2013-4-10 12:50:22 | 显示全部楼层
客户表示目前还没有空去尝试同事提供的解决方案。Q上跟客户沟通后期尝试过程中如果有问题继续在帖子中跟进。对应帖子移到待实践。后续会继续跟进客户的解决进度。
spiral 发表于 2013-4-25 14:46:05 | 显示全部楼层
楼主您可以参看一下以下代码:
http://www.teemlink.com/bbs/viewthread.php?tid=166074
 楼主| 云南腾俊 发表于 2013-5-8 15:17:30 | 显示全部楼层
我试试,应该没问题,关闭了把
shary 发表于 2013-5-8 15:17:58 | 显示全部楼层
好的。感谢您的反馈。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 23:54

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表