要表达的Grid样子是:
部门编号,部门名,附属部门1,附属部门2.附属部门n表结构上是,DeptID,DeptNo,DeptName,ParentID
表内容是:
1 A 部门A null
2 B 部门B 1
3 C 部门C 1
4 D 部门D nullSQL语句:
select a.DeptID,a.DeptNo,a.DeptName,b.DeptID,b.DeptNo,b.DeptName
from tbl_Dept as a
left join tbl_Dept as b on
a.DeptID=b.ParentID这样可以获取
1 A 部门A 2 B 部门B
1 A 部门A 3 C 部门C
4 D 部门D null null null
...
类似这个结构。我也只能用DBGrid显示上面的样子。
有什么方法,可以变成 "部门编号,部门名,附属部门1,附属部门2.附属部门n"的样式。
如果用dev的Grid能解决的话,就更好了。请高手指点下。谢谢。
部门编号,部门名,附属部门1,附属部门2.附属部门n表结构上是,DeptID,DeptNo,DeptName,ParentID
表内容是:
1 A 部门A null
2 B 部门B 1
3 C 部门C 1
4 D 部门D nullSQL语句:
select a.DeptID,a.DeptNo,a.DeptName,b.DeptID,b.DeptNo,b.DeptName
from tbl_Dept as a
left join tbl_Dept as b on
a.DeptID=b.ParentID这样可以获取
1 A 部门A 2 B 部门B
1 A 部门A 3 C 部门C
4 D 部门D null null null
...
类似这个结构。我也只能用DBGrid显示上面的样子。
有什么方法,可以变成 "部门编号,部门名,附属部门1,附属部门2.附属部门n"的样式。
如果用dev的Grid能解决的话,就更好了。请高手指点下。谢谢。
1,A,部门A,2,B,部门B
1,A,部门A,3,C,部门C
4,D,部门D,null,null,null
不能用tree,不能用主从。
從表: 在主表的DATASET OPEN時根據 parent 建立即可。
1.求部门的最多附属部门个数
declare @CountDept Integer
select @CountDept=max(deptid)
from (
select count(a.DeptID) as DeptId
from tbl_Dept as a
left join tbl_Dept as b on a.DeptID=b.ParentID
group by a.deptid
) a
2.建立临时表, 产生@CountDept个附属部门字段
3.以你的Sql语句建立Cousor
declare c_dept cursor
for
select a.DeptID,a.DeptNo,a.DeptName,b.DeptID,b.DeptNo,b.DeptName
from tbl_Dept as a
left join tbl_Dept as b on a.DeptID=b.ParentID
4.读取Cousor, 填入临时表中
5.select 临时表