AAAAA求一SQL语句!AAAAA

zhanglizhao2004 2015-01-31 09:46:43
有表Dept(部门ID,父ID,部门名称):
DeptID PDeptID DeptName
1 0 XXXX有限公司
2 1 市场部
3 1 技术部
4 1 财务部
5 1 综合管理部
6 2 市场调研组
7 2 客服中心
8 2 售后服务组
9 3 技术开发组
10 3 项目维护组
11 4 财务预算组
12 4 出纳组
13 5 行政办公室
要得到如下结果(部门ID,父部门名称,部门名称):
DeptID PDeptName DeptName
1 XXXX有限公司
2 XXXX有限公司 市场部
3 XXXX有限公司 技术部
4 XXXX有限公司 财务部
5 XXXX有限公司 综合管理部
6 市场部 市场调研组
7 市场部 客服中心
8 市场部 售后服务组
9 技术部 技术开发组
10 技术部 项目维护组
11 财务部 财务预算组
12 财务部 出纳组
13 综合管理部 行政办公室

请用一条SQL语句实现,怎么写?(要求语法支持Access)

...全文
142 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ekun_sky 2015-01-31
  • 打赏
  • 举报
回复
with a(deptid,pdeptid,deptname) as
(
 select 1,0, 'xxxx有限公司' union all
 select 2,1, '市场部' union all
 select 3,1,'技术部' union all
 select 4,1,'财务部' union all
 select 5,1,'综合管理部' union all
 select 6,2,'市场调研组' union all
 select 7,2,'客服中心' union all
 select 8,2,'售后服务组' union all
 select 9,3,'技术维护组' union all
 select 10,3,'项目维护组' union all
 select 11,4,'财务预算组' union all
 select 12,4,'出纳组' union all
 select 13,5 ,'行政办公室'
)


select a.deptid,b.deptname,a.deptname

from  a  left join a as b  on a.pdeptid=b.deptid
吉普赛的歌 2015-01-31
  • 打赏
  • 举报
回复
Access 中查询:
SELECT DeptID, '' AS PDeptName, DeptName FROM dept WHERE pdeptID=0
UNION
SELECT b.DeptID,A.DeptName AS PDeptName,B.DeptName FROM dept A ,dept B WHERE b.PdeptID=a.DeptId


吉普赛的歌 2015-01-31
  • 打赏
  • 举报
回复
IF OBJECT_ID('dbo.Dept') IS NOT NULL
BEGIN
DROP TABLE dbo.Dept
END
GO
CREATE TABLE dbo.Dept
(
DeptID INT PRIMARY KEY,
PDeptID INT,
DeptName NVARCHAR(50)
)
GO
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 1, 0, 'XXXX有限公司')
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 2, 1, '市场部')
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 3, 1, '技术部')
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 4, 1, '财务部')
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 5, 1, '综合管理部')
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 6, 2, '市场调研组')
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 7, 2, '客服中心')
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 8, 2, '售后服务组')
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 9, 3, '技术开发组')
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 10, 3, '项目维护组')
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 11, 4, '财务预算组')
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 12, 4, '出纳组')
INSERT INTO dbo.Dept( DeptID,PDeptID,DeptName ) VALUES( 13, 5, '行政办公室')

SELECT DeptID, '' AS PDeptName, DeptName FROM dbo.dept WHERE pdeptID=0
UNION
SELECT b.DeptID,A.DeptName AS PDeptName,B.DeptName FROM dbo.dept A ,dbo.dept B WHERE b.PdeptID=a.DeptId

sql server里面执行的:

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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