首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

级联的查询的sql

2013-12-11 
求一个级联的查询的sql顾客表CusnoCusNameCus_deptIdCusTel1zjf4132xdx6sss部门表DeptIdName_cnParentIdPh

求一个级联的查询的sql
顾客表
CusnoCusNameCus_deptIdCusTel
1zjf4        13
2xdx6        sss
部门表
DeptIdName_cn     ParentIdPhone
1AA公司    0111111
2研发          1   22222
3测试部          1  333
4测试1            3 aaa
5研发1        2 啊啊
6研发2        2bb
7研发3        2ss
8测试2        3ssss

我要查询一下
cusnocusnamecus_deptidcustel   还要一列
1zjf4       1111      AA公司/测试部/测试1
2xdx6       sss       AA公司/研发/研发2

请大神帮忙看看
[解决办法]

----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-12-09 17:15:01
-- Version:
--      Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
--Dec 28 2012 20:23:12 
--Copyright (c) Microsoft Corporation
--Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
--
----------------------------------------------------------------
--> 测试数据:[顾客表]
if object_id('[顾客表]') is not null drop table [顾客表]
go 
create table [顾客表]([Cusno] int,[CusName] varchar(3),[Cus_deptId] int,[CusTel] varchar(3))
insert [顾客表]
select 1,'zjf',4,'13' union all
select 2,'xdx',6,'sss'
--> 测试数据:[部门表]
if object_id('[部门表]') is not null drop table [部门表]
go 
create table [部门表]([DeptId] int,[Name_cn] varchar(6),[ParentId] int,[Phone] varchar(6))
insert [部门表]
select 1,'AA公司',0,'111111' union all
select 2,'研发',1,'22222' union all
select 3,'测试部',1,'333' union all
select 4,'测试1',3,'aaa' union all
select 5,'研发1',2,'啊啊' union all
select 6,'研发2',2,'bb' union all
select 7,'研发3',2,'ss' union all
select 8,'测试2',3,'ssss'
--------------开始查询--------------------------
;WITH cte AS (
select deptid,CONVERT(VARCHAR(20),name_cn)name_cn,parentid
from [部门表]
WHERE parentid=0
UNION ALL 
SELECT a.deptid,CONVERT(VARCHAR(10),a.name_cn)+'/'+CONVERT(VARCHAR(9),b.name_cn) name_cn,a.parentid
FROM [部门表] a INNER JOIN cte b ON a.parentid=b.deptid)
--SELECT deptid,name_cn
-- FROM cte
select a.*,b.name_cn
from [顾客表] a INNER JOIN cte b ON a.[Cus_deptId]=b.deptid
----------------结果----------------------------
/* 
Cusno       CusName Cus_deptId  CusTel name_cn
----------- ------- ----------- ------ --------------------
1           zjf     4           13     测试1/测试部/AA
2           xdx     6           sss    研发2/研发/AA公
*/

热点排行