62,041
社区成员
发帖
与我相关
我的任务
分享
create table [User]
(
id int,
[name] varchar(10),
deptid varchar(100)
)
create table dept
(
id int,
[name] varchar(10)
)
insert into [user] select 1,'张七','2,3,'
union select 2,'李四','1,3,'
union select 3,'随便','1,'
union select 4,' 随便1','1,2, '
insert into dept select 1,'行政'
union select 2,'生产部 '
union select 2,'XX部 '
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
create function [dbo].[f_split](@c varchar(2000),@split varchar(2))
returns @t table(col varchar(20))
as
begin
while(charindex(@split,@c)<>0)
begin
insert @t(col) values (substring(@c,1,charindex(@split,@c)-1))
set @c = stuff(@c,1,charindex(@split,@c),'')
end
insert @t(col) values (@c)
return
end
select count([user].id),dept.[name]
from [user]
inner join dept on dept.id in
(select * from [dbo].f_split(substring([user].deptid,1,len([user].deptid)-1),','))
group by dept.[name]
select a.deptid,min(a.deptname) as deptname , count( distinct b.useid) as nameCount from @dept a
inner join @User b on PATINDEX( '%'+a.deptid+',%',b.deptids+',')<>0
group by a.deptid
select dept.name,count(user.id) as '人数' from user left join dept on user.deptids=dept.id group by dept.name
declare @User table( useid int , userName varchar(20) , deptids varchar(50))
declare @dept table( deptid varchar(20) , deptname varchar(20))
insert into @User values( 1 , 'name1' , '1,2,3')
insert into @User values( 2 , 'name1' , '1')
insert into @dept values( 1 , 'dept1')
insert into @dept values( 2 , 'dept2')
insert into @dept values( 3 , 'dept3')
select *,
(select Count( distinct useid) from @User where PATINDEX( '%'+deptid+',%',deptids+',')<>0) as useCount
from @dept
create table [User]
(
id int,
[name] varchar(10),
deptid int
)
create table dept
(
id int,
[name] varchar(10)
)
insert into [user] select 1,'user1',1
union select 2,'user2',1
union select 3,'user3',1
union select 4,'user4',2
union select 5,'user5',2
insert into dept select 1,'dept1'
union select 2,'dept2'
select count([user].id),dept.[name]
from [User]
inner join dept on [user].deptid = dept.id
group by dept.id,dept.[name]