sql查询问题

yanzhi_hh 2011-11-25 10:06:54
首先描述一下我的需求
create table EXP_TASK (
TL_ID int not null, //id
TL_RWBH varchar(5) null, //流程编号
TL_RWMC nvarchar(20) null, //流程名称
TL_QZRW varchar(5) null, //前置任务编号
)


这是要实现一个流程图的排序,每条数据代表一个过程,对这个表的所有数据进行排序,但是每条数据都有一个前置任务编号,意思是这条数据的前面要存在的流程,比如

任务编号 任务名称 前置任务
20114 倒垃圾 20113
20119 开门 0
20113 打扫卫生 20112
20112 进入房间 20119

对上面的数据进行排序结果如下:

任务编号 任务名称 前置任务
20119 开门 0
20112 进入房间 20119
20113 打扫卫生 20112
20114 倒垃圾 20113

首先开门的前置任务是0,他没有前置任务,他排在首位,
进入房间 前置任务是开门,编号20119,它就排在第二位,
打扫卫生的前置任务是进入房间,编号20112,所以打扫卫生排在第三位,
依次类推。把这个表的流程排序出来。





...全文
139 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ASPNETCHENGXU 2011-11-26
  • 打赏
  • 举报
回复
像这种递归查询,最好在程序中实现吧
yuanjin1981 2011-11-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sandy945 的回复:]

CTE
[/Quote]

感谢高手,让我学习了CTE。谢谢谢谢
yuanjin1981 2011-11-26
  • 打赏
  • 举报
回复
with
TASK as
(
SELECT *
FROM EXP_TASK where TL_RWMC='开门'
union all
SELECT a.*
FROM EXP_TASK a,TASK b where a.TL_QZRW=b.TL_RWBH
)
Select * from TASK
测试通过

2 20119 开门 0
4 20112 进入房间 20119
3 20113 打扫卫生 20112
1 20114 倒垃圾 20113
ZHUKY 2011-11-26
  • 打赏
  • 举报
回复




这要求的数据,就像 Treeview 结构,权限关系一样。用程序实现好点

20119 开门 0 //0为部门顶级
20112 进入房间 20119 //这个任务编号(20112)的父级任务编号为:20119
20113 打扫卫生 20112 //? 父级编号:20112
20114 倒垃圾 20113


楼上提了,用递归算法

ZHUKY 2011-11-26
  • 打赏
  • 举报
回复




这要求的数据,就像 Treeview 结构,权限关系一样。用程序实现好点

20119 开门 0 //0为部门顶级
20112 进入房间 20119 //这个任务编号(20112)的父级任务编号为:20119
20113 打扫卫生 20112 //? 父级编号:20112
20114 倒垃圾 20113


楼上提了,用递归算法

qujianye 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 feng1366259807 的回复:]
一个查询语句估计是不可能,可以通过查询
select TL_QZRW ,TL_RWMC
,TL_RWBH from tab where TL_QZRW =0
读取存入集合 怎么存自己决定

在根据上面一条插叙得到的TL_RWMC
select TL_QZRW ,TL_RWMC
,TL_RWBH from tab where TL_QZRW =dr【“TL_RWMC ”】 上一个……
[/Quote]
顶一个
风2013 2011-11-25
  • 打赏
  • 举报
回复
一个查询语句估计是不可能,可以通过查询
select TL_QZRW ,TL_RWMC
,TL_RWBH from tab where TL_QZRW =0
读取存入集合 怎么存自己决定

在根据上面一条插叙得到的TL_RWMC
select TL_QZRW ,TL_RWMC
,TL_RWBH from tab where TL_QZRW =dr【“TL_RWMC ”】 上一个查询得到的.
继续存入上一个数组,
这你应该能懂的

但是这种做法任务的数据不能太多....仅限提供一种思路.... 希望能提供点帮助

TL_RWBH
阿非 2011-11-25
  • 打赏
  • 举报
回复
CTE
yanzhi_hh 2011-11-25
  • 打赏
  • 举报
回复
那个任务编号是没大小顺序的
心情灬麻醉师 2011-11-25
  • 打赏
  • 举报
回复
order by TL_QZRW, TL_RWBH
这样???????????
yanzhi_hh 2011-11-25
  • 打赏
  • 举报
回复
求一条sql语句,或者视图都可以。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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