求将一树型结构SQL表进行读写的sql语句(越具体越高分)(200分)

  • 主题发起人 主题发起人 chelon
  • 开始时间 开始时间
C

chelon

Unregistered / Unconfirmed
GUEST, unregistred user!
现有一树型结构的部门表,该表的结构如下:
部门表(部门编号,部门编码,部门名称,上级部门编号,部门级数,是否明细部门)
如 1 01 公司 1 1 0
2 001 A公司 1 2 0
3 002 B公司 1 2 0
4 00101 A1部 2 3 1
5 00102 A2部 2 3 1
6 00201 B1部 3 3 1
其中,[部门编号]是自增型,当[部门编号]和[上级部门编号]相同时是顶级部门,部门级数
从1开始算起,每下一级+1,只有当[是否明细部门]为1时才能在该部门中分配职员,如当在
B1部下有下级部门时,B1部的[是否明细部门]属性将从1变为0,不知道清不清楚?
现寻求可以进行遍历、添加、修改和删除操作该部门表的SQL语句,望各位大虾倾力帮助。
 
去看 张丽敏 的一个帖子 ,好像有位高手解决了
 
续楼上,贴号为:
http://www.delphibbs.com/delphibbs/dispq.asp?LID=462228
 
给你发个我做的例子,也是针对部门的,我用的是table表,部门支持拖拉。
张丽敏 的贴子是用来对付产品结构的,值得参考。
 
从系统的角度分析一下你的系统!

两年前我做过和你一样的结构
部门编码,部门名称,上级部门编码,部门级数,是否明细部门

两年后结构我该了!取消了 ‘是否明细部门‘字段

其实不是明细部门也可有人。例如总裁办公室有总裁,秘书。
而总裁办公室下有技术,生产等部门。
 
郭兄,念在本家的份上,能给我发个你的大作么?
谢了先
 
TO 冰火:
什么大作,破程序一个,无需言谢。
对了,如何给你?
 
郭兄:
顺便说句,至今我还没有收到你的大作,不知道。。。可不可以???
 
老兄,没地址呀,那天什么都准备好了,却没有你的地址,叫我如何是好?
给我你的mail,现在就发!
 
>现寻求可以进行遍历、添加、修改和删除操作该部门表的SQL语句
我正在做这样的一个小东东,参照了给我们做mis公司的程序,
觉得在在程序中实现比较好理解。
“部门级数,是否明细部门”我们没用定义,觉得没有必要。
1、遍历
使用递归。
不过在实际使用中,不需要这样,因为递归太慢了。
我们在界面中形成一棵树。按照绝大多数软件的做法,一开始只显示第一级,
用户选择后再展开。
2、添加
添加并不困难,只用用户制定上级部门就可以了
3、删除
删除复杂一些,要判断没有下一级部门才可以进行,否则提示。
(为了简单,我们和用户达成一致,不提供删除操作,呵呵。)
4、修改
是不是改名字而已?

btw:为什么一定要使用sql、存储过程来实现呢?我提倡使用简单和容易理解的方法。呵呵。
 
郭玉梁,不好意思,这几天没上网,耽误了。
我的email:guestwind@21cn.com
谢了
 
我想是不是你的每一个父部门表中应该有一个field是存放该下一级部门的表名(这样可能
能够使查询速度加快点),这样的话,用storeproc应该不难解决阿。
 
My E-mail:chelon@21cn.com or chelon@263.net.
Thanks!
 
jianl :为什么一定要使用sql、存储过程来实现呢?
我提倡使用简单和容易理解的方法。呵呵。
如果不用sql、存储过程,有20万或更多,你怎么办?
将所有记录都DOWN 到client ???????
 
1,把他张开
select a1id=a1.id,ainame=a1.name
 
to jianl:能不能谈谈你的简单容易理解的方法具体是什么方法?
小弟也正碰到同样的问题,正好请教一下。

to 郭玉梁:能不能也给我一份你的大作?
qg_li@263.net or qg_li@china.com
 
多人接受答案了。
 
郭玉梁:能不能也给我一份你的大作?
dnsmay@21cn.com
 
后退
顶部