当前位置:首页 » 编程语言 » sql查询所有下级
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql查询所有下级

发布时间: 2023-01-31 04:27:15

❶ 高难!小白求救,sql 每层有一到三个下级如何查询子树

类似这种语法,你可以参考一下:

WITH leaderCTE as(
SELECT id, name,manager
FROM [lulinghao].[dbo].[YGB]
WHERE name = @name

UNION ALL

SELECT ygb.id, ygb.name,ygb.manager
FROM [lulinghao].[dbo].[YGB] as ygb
inner join leaderCTE lce on lce.manager = ygb.id
)
SELECT case when [id]=100 then 1 when [id]=101 OR [id]=102 then 2 else 3 end as leaderlevel,
name as leadername
FROM leaderCTE

❷ 求一条sql用于查询下级分类

SELECT sid,SUM(money) FROM (
SELECT SUBSTR(id,1,2) sid,money FROM tablename WHERE id != SUBSTR(id,1,2)
)A GROUP BY sid;

❸ 一张表table,树形结构,id唯一标识,name姓名,pid上级id, 求一条sql语句查询出某人所有下属员工

最好增加一个字段Code,然后用所有父类ID和个人ID组成字符串
比如12/234/3456/7890
其中12为第一层,234为第二层,3456为第三层,7890为第四层本身ID
第三层是这个人的父类ID,第二层是第三层的父类。。。

然后查询的时候,先获取该员工的Code,
然后select * from table1 where code like 'Code%';

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

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

❺ sql查询问题(查找fid是否有下级目录),请大家帮帮

select * from t1 a where exists(select fid from t1 where pid=a.dif)

有记录就有下级目录,无记录则没有

❻ 地区—内地—省—市—县,写一条SQL语句,无论点谁都能看到所有下级内容, 表:area id ,parentid ,name

如果是sql,你分多次请求,就如下,如果你是读取一次后,保存到缓存,或者XML等文件中,那么你就需要使用程序递归来处理

1、只看该父级下的自己

select * from Area

where pid = 你点击的内容的ID

2、CTE递归得到该父级下的所有子级(包含子级的子级)数据

完整的例子如下

--CTE递归查询
if(object_id(N'menu')>0)
droptablemenu

CREATETABLEMENU
(
namenvarchar(50)NOTNULLPRIMARYKEY,
seniornvarchar(50)NULL
);

INSERTINTOMENUvalues
('文件',NULL),
('新建','文件'),
('项目','新建'),
('项目11111','项目'),
('项目22222','项目'),
('项目33333','项目'),
('使用当前连接查询','新建');

WITHlmenu(name,senior,level)as
(
SELECTNAME,SENIOR,0levelFROMMENUWHEREname='新建'
UNIONALL
SELECTA.NAME,A.SENIOR,b.level+1FROMMENUA,lmenub
wherea.senior=b.name
)
SELECT*fromlmenu

❼ SQL语句怎么获取下级所有部门

一级部门的所有下级部门就用 like "01-%" 即可,方便实惠。
你现在的编号么,也可以用这个方式转换一下,例如加个字段,再把编号都这样连起来放这个编号里专门做查询用。

❽ sql如何取某个部门的所有子部门

假设表名为 tb, id=001
select * from tb where parentid=(select parentid from tb where id=001)
上面的语句只能找到下级部门,三级就找不到了。建议部门编码使用层级式的,这样就很容易了

❾ sql查询当前及其下级组织的人数

select * from 表名 a where not exists(select 1 from 表名 where goods_ParentID=a.goods_ID )