sql查询~~~~~~~~~请大家帮忙看看~~~~

qingyun67 2006-09-26 09:18:38
职级表
编号 名称
01 总监
02 经理
03 主任
04 业务员
基本表
编号 上级编号 职级 备注
001 01
002 01
003 001 02
004 003 03
005 004 04

想实现这样的统计结果:

总监 上级经理 上级主任 经理 主任 业务员 上级编号 职级 备注
001 01
001 003 001 02
001 003 004 003 03
001 003 004 005 004 04
002 01
请大家帮忙看看~~~~
...全文
214 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingyun67 2006-09-27
  • 打赏
  • 举报
回复
up
qingyun67 2006-09-27
  • 打赏
  • 举报
回复
up
allright_flash 2006-09-26
  • 打赏
  • 举报
回复
建议你摆渡一下start with ...connect by ...
qingyun67 2006-09-26
  • 打赏
  • 举报
回复
行列转换我会,现在主要的是怎么能显示出一个员工的血缘关系
比如说
005 上级编号是004 ,004再上级是003,003 再上级是001
查询出来:
上级总监 上级经理 上级主任 经理 主任 业务员
001 003 004 005
Well 2006-09-26
  • 打赏
  • 举报
回复
/*引用*/

这个可以给你启发
1.包含两个表------典型行列转换问题例子
--建立测试环境
create table tb1 (id nvarchar(10),type nvarchar(10))
insert into tb1 select '11','a' union all select '22','b' union all select '33','c'
create table tb2 (n int,type nvarchar(10),num int)
insert into tb2 select '1','11','4' union all select '1','11','5'
union all select '2','22','8' union all select '3','22','5'
--查询处理
DECLARE @SQL VARCHAR(8000)
SET @SQL='select n '
SELECT @SQL= @SQL+',sum(case when type='+ttt+' then num else 0 end)['+tt+']' from
(select distinct a.type as tt,isnull(b.type,'0') as ttt from tb2 b right join tb1 a on a.id=b.type) b
set @sql=@sql+' from tb2 group by n'
print @sql
exec(@sql)
go--删除测试环境
Drop Table tb1,tb2
qingyun67 2006-09-26
  • 打赏
  • 举报
回复
up
dawugui 2006-09-26
  • 打赏
  • 举报
回复
用SQL写,难度太大,建议用程序搞吧.
qingyun67 2006-09-26
  • 打赏
  • 举报
回复
up
qingyun67 2006-09-26
  • 打赏
  • 举报
回复
up
gdmblue 2006-09-26
  • 打赏
  • 举报
回复
跟着学习一下 不会
qingyun67 2006-09-26
  • 打赏
  • 举报
回复
up
yifuzhiming 2006-09-26
  • 打赏
  • 举报
回复
老大,你这样搞不是在玩自己吗,

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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