`
sony-soft
  • 浏览: 1105197 次
文章分类
社区版块
存档分类
最新评论

关于树形结构的表与另外一个表的连接查询

 
阅读更多

--创建单位信息表I_SYS_UnitInfo
ifexists(selectnamefromsysobjectswherename='I_SYS_UnitInfo')
droptableI_SYS_UnitInfo
go

createtableI_SYS_UnitInfo
(
UI_ID
intidentity(1,1)notnullprimarykey,--单位ID
UI_ShortNamevarchar(20)notnull,--单位名称
P_UI_IDintnotnull,--所属单位ID
UI_optMarkintnotnulldefault1,--操作标记:0删除,1添加,2修改
UI_optIDintnotnulldefault0,
UI_optTime
datetimenotnulldefaultgetdate(),
)
go

--创建员工档案表I_HR_EmployeeArchives
ifexists(selectnamefromsysobjectswherename='I_HR_EmployeeArchives')
droptableI_HR_EmployeeArchives
go

createtableI_HR_EmployeeArchives
(
EA_ID
intidentity(1,1)notnullprimarykey,--档案ID
EA_UI_IDintnotnull,--所属部门
EA_Namevarchar(50)notnull,--员工姓名
EA_optMarkintnotnulldefault1,--操作标记:0删除,1添加,2修改
EA_optIDintnotnulldefault0,
EA_Time
datetimenotnulldefaultgetdate(),
)
go

--查找属于编号为1的单位下的所有的员工
--定义要查询的单位
declare@UIDint
set@UID=1
as
--得到所有属于1的单位
DECLARE@tTABLE(UI_IDint,Levelint)
DECLARE@lint
SET@l=0
INSERT@tSELECTUI_ID,@lFROMI_SYS_UnitInfo
WHEREUI_ID=@UID
WHILE@@ROWCOUNT>0
BEGIN
SET@l=@l+1
INSERT@tSELECTA.UI_ID,@l
FROMI_SYS_UnitInfoA,@tB
WHEREA.P_UI_ID=B.UI_ID
ANDB.Level=@l-1
END

--统计
selectDISTINCTH.EA_ID,H.EA_Name,A.UI_ShortName,H.EA_UI_ID
from
(
SELECTAA.UI_ID,AA.UI_ShortName
from@tA,I_HR_EmployeeArchivesH,I_SYS_UnitInfoAA
whereA.UI_ID=H.EA_UI_ID
ANDA.UI_ID=AA.UI_IDandH.EA_optMark>0andAA.UI_optMark>0
)A
FULLJOIN(
SELECTAA.UI_ID,AA.UI_ShortName,H.EA_Name,H.EA_UI_ID,H.EA_ID
FROM@tA,I_HR_EmployeeArchivesH,I_SYS_UnitInfoAA
whereA.UI_ID=H.EA_UI_ID
ANDA.UI_ID=AA.UI_IDandH.EA_optMark>0andAA.UI_optMark>0
)H
ONA.UI_ID=H.EA_UI_ID
ORDERBYH.EA_UI_ID
分享到:
评论

相关推荐

    动态数据库加载省市区形成树形结构

    在IT行业中,构建一个动态的省市区树形结构是一个常见的需求,特别是在开发具有地理信息管理功能的Web应用或管理系统时。这个"动态数据库加载省市区形成树形结构"的项目,利用了Visual Studio 2008(VS2008)作为...

    edb数据库保存树形框分支结构源码

    6. **数据库设计**:为了存储树形结构,可能需要设计一种特殊的表结构,例如使用自引用关联或者使用adjacency list模型。另外,层次查询语言(如PostgreSQL的`WITH RECURSIVE`)可能被用来遍历树形结构。 7. **编程...

    Android之仿手机树形主键功能.zip

    - **数据库设计**:在数据库表中,为每个节点设置一个父节点ID字段,通过递归查询构建树形结构。虽然这样没有直接的树形主键,但在查询和操作时同样能实现类似的效果。 3. 数据存储与查询 在Android中,常见的数据...

    .net 动态生成树形图

    1. **设计节点类**:创建一个类,代表树形结构中的每个节点。这个类通常包含属性如ID、名称、描述以及一个列表,用于存储子节点。例如: ```csharp public class TreeNode { public int Id { get; set; } ...

    Android应用源码之树形主键.zip

    首先,理解树形结构是至关重要的。在计算机科学中,树是一种非线性的数据结构,由节点(或称为顶点)和边组成。每个节点可能有零个或多个子节点,而根节点没有父节点。树形主键就是在这种结构中,用于唯一标识每个...

    SqlServer使用公用表表达式(CTE)实现无限级树形构建

    在SQL Server中,构建无限级树形结构是一个常见的需求,特别是在数据存储和组织层次结构时。公用表表达式(CTE)提供了一种简洁而高效的方法来处理这种问题。CTE是SQL Server 2005引入的一个特性,它允许在查询中...

    数据结构第三章:树

    例如,文件系统的目录结构就是一种树形结构,每个目录是节点,文件和子目录是其子节点。在数据库索引中,B树和B+树常用于快速定位数据,它们能高效地处理大数据量的查询。图论中的最小生成树(如Prim算法和Kruskal...

    jsp+ajax实现动态树结构

    1. **HTML/CSS布局**:构建基本的HTML结构,用于展示树形结构。每个节点通常是一个`<li>`元素,通过CSS样式来实现折叠和展开的效果。 2. **JSP数据处理**:在服务器端,使用JSP和Servlet处理请求,可能需要连接...

    数据结构本科试卷及答案

    2. 树形结构:二叉树是最常见的一种树,每个节点最多有两个子节点。二叉树类型包括完全二叉树、满二叉树和平衡二叉树(如AVL树和红黑树)。此外,还有堆(最大堆和最小堆)、二叉搜索树等。树结构广泛应用于文件系统...

    数据结构1800试题及答案

    堆是一种特殊的树形结构,用于实现优先队列。图结构则是任意两个节点间可能存在连接,常见有图的遍历算法(深度优先搜索和广度优先搜索)以及图的最小生成树(Prim算法、Kruskal算法)。 在解决数据结构问题时,...

    数据结构 源程序

    2. **树形结构**:二叉树是一种特殊的树,每个节点最多有两个子节点。二叉搜索树是一种有序的二叉树,查找、插入和删除操作的平均时间复杂度为O(log n)。另外,堆是一种可以快速找到最大或最小元素的特殊树,常用于...

    网络拓扑结构 ppt

    集中式计算机网络的处理和控制功能都高度集中在一个或少数几个结点上,而分布式计算机网络中不存在一个处理和控制中心,网络中任一结点都至少和另外两个结点相连接。 按照网络规模分类,计算机网络可以分为局域网、...

    数据结构知识点整理

    二叉树是一种特殊的树形结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。 **二叉树的性质** 1. 在二叉树的第k层上至多有2^(k-1)个结点(k≥1)。 2. 深度为m的二叉树至多有2^m - 1个结点(m≥1)。 3. ...

    PDD—11/73机通信转发软件的数据结构浅述.pdf

    其中,链表适用于处理大量动态数据的场景,队列适用于排队处理任务,树形结构可能用于存储文件目录或者路由信息。 另外,跳转表法的应用可以极大提高程序处理的效率。例如,在处理大量控制字符或指令时,可以通过...

    数据结构金远平版 部分作业解答

    金远平版的数据结构教材是众多学习者和教师常用的教学参考资料,它深入浅出地讲解了各种基本的数据结构类型,包括线性结构、树形结构、图结构以及查找和排序算法。 在这个"数据结构金远平版部分作业解答"中,我们...

    C# TreeView树显示主子信息

    在C#编程中,`TreeView`控件...总结来说,C#中使用`TreeView`显示主子信息涉及数据库设计、数据查询、以及在C#代码中构建和维护树形结构。通过理解这些概念和技巧,你可以创建出交互式的用户界面,展示层次分明的数据。

    数据结构基础题及答案

    二叉树是最常见的树形结构,每个节点最多有两个子节点,常用于搜索和排序操作。图是由节点和边组成的,可以表示任意复杂的关联关系,图的遍历算法如深度优先搜索(DFS)和广度优先搜索(BFS)在很多问题中都至关重要...

    一款不可多得的演示系统数据结构演示系统

    另外,堆是一种特殊的树形数据结构,通常用于实现优先队列,如最小堆和最大堆。 排序和查找是数据结构中常见的操作。排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序等,它们各有优缺点,适应不同的...

    asp.net 无限级分类

    这个方法可能需要接收一个父分类ID,然后调用数据库查询,将结果转换为树形结构的对象。可以使用递归函数或者迭代方式来构建树。 4. 前端展示:在ASP.NET中,可以使用控件如TreeView来展示无限级分类。通过绑定BLL...

Global site tag (gtag.js) - Google Analytics