当前位置:首页 » 编程语言 » sql上级

sql上级

发布时间: 2022-05-18 05:59:30

sql获取所有上级节点的Id

两个方法
1、要么用自定义函数(SQL任何版本都支持)
2、要么用WITH语句做子查询(SQL2005和以上版本均支持)

⑵ sql语句查询员工的上级,在同一张表中

如果是SQL2005以上则可以用CTE递归写法

use tempdb
go
create table #emp
(eid integer not null,
ename varchar(10) not null,
epid integer null,
)

insert into #emp
select 1,'A',5
union all
select 2,'me',3
union all
select 3,'bos',4
union all
select 4,'boss',null

select * from #emp

;with empcte as
(select epid,(select ename from #emp b where b.eid = a.epid) as name from #emp a where ename = 'me'
union all
select b.epid,(select ename from #emp where eid = b.epid) as name from empcte a join #emp b on a.epid = b.eid
)
select * from empcte where epid is not null

⑶ sql问题,一个员工可能有一个上级部门,可能有多个上级部门,如何查询查询这个员工所在的顶级部门。

如果是oracle 数据库, 可以使用start with ..connect by 语法。
查出左右部门后在查没有上级部门的部门(使用子查询)

关于语法参考:
http://blog.csdn.net/Bobwu/archive/2008/12/17/3539604.aspx

⑷ sql 一个表中 员工名称、员工号、上级号、 然后要求查询所有员工 和其直接上级,这么干是不是有病

这里假设上级号也就是同一张表里的员工号,而且员工号无重复。

同表连接可用表起别名的办法避免混淆,为了让没有上级的员工也能被查出来,这里使用left join联接。实现SQL语句如下:

select a.员工号,a.员工名称,
b.员工名称 as 上级名称 from
员工表 a left join 员工表 b
on b.员工号=a.上级号;

⑸ 怎么用SQL查询结果的会计科目 显示包括上级科目名称

字段里面添加子查询获取上级科目,再用concat函数拼接自己的会计科目,整个查询sql应该是select id,concat((select name from 表名 where id = left(a.id)limit 1),“\”,a.name) from 表名 a。

⑹ sql 查上级行号的行名

select行名fromHANGHAOwhere行号in(select上级行号fromHANGHAOwhere行号=111)

⑺ 用SQL如何列出所有员工的姓名及其直接上级的姓名

select Table1.ename Table2.ename from emp Table1,emp Table2 where Table1.mgr=Table2 .empno 追问: 嗯是的呢 回答: 上面的不能运行吗?我在Sql Server里面测试过了没问题的。 提问者 的感言: 嗯可以了 你这个意思我大概明白了 也算比较好懂 麻烦你了 2009-08-24其他回答(4) 热心问友 2009-08-24差不多 追问: 可是不能出结果啊 高手帮忙看看 回答: 查询上级表中是否存在员工的名称么 补充: 字段没问题么 追问: 当然有的 可是不知道如何查询简单的就是select mgr,ename from emp可是规定要用子查询来写还是不能太熟练的掌握 麻烦指点指点 回答: 我是说你的员工姓名的字段在 上级表中是否存在或是 关联 主外键关系 ? 追问: 不存在的 回答: 什么不存在的啊 ...附耳细说6级2009-08-24不对select ename (select *** from *** where ****** ) mgr from emp derek9级2009-08-24 select emp.ename,emp1.ename as mgrename
from emp left outer join (select empno from mgr) emp1
on emp.mgr=emp1.empno 补充: 忘了取ename,改成
select emp.ename,emp1.ename as mgrename
from emp left outer join (select empno,ename from mgr) emp1
on emp.mgr=emp1.empno
考虑有的emp可能没有上级

⑻ SQL级联查询,部门表自连接,需要查出某个部门的上级部门及其上上级部门,上级部门无限个,如何查询

用(select…start with…connect by…prior) 具体给你个参考地址:http://www.cnblogs.com/linjiqin/archive/2013/06/24/3152674.html

⑼ 关于sql的上下级查询统计(如图)

selectcode_name,amountfrom
(selectleft(code,2)ascode,ISNULL(SUM(amount),0)asamount
fromagroupbyleft(code,2))astmp
innerjoinbontmp.code=b.code

⑽ sql ,如何通过用户表查出所有上级部门

这个的话,单靠sql好像不能实现,因为ids那个字段保存的方式不太支持
你可以将所有部门放在map里面,然后查询用户信息的时候,关联一下查找出来ids,再根据部门id再查找出来部门名称,这个也简单,直接split ids 然后用map.get就好了

热点内容
安卓市场手机版从哪里下载 发布:2025-05-15 20:17:28 浏览:813
幼儿速算法 发布:2025-05-15 20:15:08 浏览:86
best把枪密码多少 发布:2025-05-15 20:13:42 浏览:547
android安装程序 发布:2025-05-15 20:13:20 浏览:558
c语言跳出死循环 发布:2025-05-15 20:06:04 浏览:823
a19处理器相当于安卓哪个水平 发布:2025-05-15 20:05:29 浏览:638
荣耀9i安卓强行关机按哪个键 发布:2025-05-15 20:00:32 浏览:750
密码锁写什么最好 发布:2025-05-15 19:05:31 浏览:782
5的源码是 发布:2025-05-15 19:04:07 浏览:719
c语言创建的源文件 发布:2025-05-15 18:54:08 浏览:611