多职称分类查询~~~~~~~~~~急用(在线等)

llh6795 2010-07-01 09:37:53
最近在做了人员基本信息的程序,现在要求对人员信息分类统计。
别的分类都单一,好统计,只有职称不好整,
有的人竟然有三个职称

例如:高级人力资源管理师、会计师、审计师

怎么样才能让这个人在
高级人力资源管理师
会计师
审计师
三个类别里都出现?

SQL语句怎么写?

...全文
140 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongxiutao123 2010-07-02
  • 打赏
  • 举报
回复
分表

人员基本信息表
人员-职称关系表

需要的话增加
职称基本信息表
永生天地 2010-07-01
  • 打赏
  • 举报
回复
人员表、职称表、人员职称表
永生天地 2010-07-01
  • 打赏
  • 举报
回复
表还没有。。。??
hhiew 2010-07-01
  • 打赏
  • 举报
回复
是一个字段?
那怎么存在数据库里?
姓名 职称
A 高级人力资源管理师
A 会计师
A 审计师
如果是这样应该挺简单,过虑职称名称即可
还是?
姓名 职称
A 高级人力资源管理师、会计师、审计师
如果是这样的话那可职称之前应该有固定的分隔符吧,写一个表值函数,然后再过虑不就行了?
另外 建议单独建立人员基本信息表和职称表比较好
claro 2010-07-01
  • 打赏
  • 举报
回复
帮顶

回复内容超短!
nightmaple 2010-07-01
  • 打赏
  • 举报
回复
你把你人员表的结构和数据贴出来
kye_jufei 2010-07-01
  • 打赏
  • 举报
回复

需要建立”人員基本信息表”和“人員職稱信息關系表,再通過關系就可以得到你想要的數據!
SQL_Hhy 2010-07-01
  • 打赏
  • 举报
回复
人员基本信息表
人员职称关系表
llh6795 2010-07-01
  • 打赏
  • 举报
回复
只有人员表,没有职称表
llh6795 2010-07-01
  • 打赏
  • 举报
回复
补充:职称是一个字段
冷箫轻笛 2010-07-01
  • 打赏
  • 举报
回复
高级人力资源管理师、会计师、审计师
这个职称是放在人员表的某个字段里吗?

select *
from 人员表 a left join 职称表 b on charindex(b.职称,a.职称) > 0
昵称被占用了 2010-07-01
  • 打赏
  • 举报
回复
设计问题,不要问“SQL语句怎么写?”
昵称被占用了 2010-07-01
  • 打赏
  • 举报
回复
分表

人员基本信息表
人员-职称关系表

需要的话增加
职称基本信息表
llh6795 2010-07-01
  • 打赏
  • 举报
回复
nightmaple:谢谢了

非常感动ING

俺要出去一下,明天来了在调试
nightmaple 2010-07-01
  • 打赏
  • 举报
回复
结果
-------------------------
zc xm
会计师 bb,aa
人力资源管理师 bb
审计师 cc,bb
统计师 dd


低版本真是要命~明明一个语句就可以解决的~
nightmaple 2010-07-01
  • 打赏
  • 举报
回复
然后再
create table #temp
(
xm varchar(20),
zc varchar(100)
)
declare aaa cursor
for select * from bb where charindex('、',zc)>0
open aaa
declare @xm varchar(100),@zc varchar(100)
fetch next from aaa into @xm,@zc
while @@fetch_status=0
begin
insert into #temp select @xm,textstr from dbo.split(@zc,'、')
fetch next from aaa into @xm,@zc
end
close aaa
deallocate aaa

insert into #temp
select * from bb where xm not in (select xm from #temp)

select * into #temp2 from #temp order by zc

declare @xm varchar(100),@zc varchar(100)
select @xm='',@zc=''
update #temp2 set @xm=xm=case when charindex(zc,@zc)>0 then @xm+','+xm else xm end,@zc=zc
nightmaple 2010-07-01
  • 打赏
  • 举报
回复
先建拆字符串的方法
IF OBJECT_ID('split', 'tf') IS NOT NULL 
Drop function split
GO
create function split
(
@str varchar(2000),
@spl varchar(2)=','
)
returns @table table
(
id int identity(1,1),
textstr varchar(200)
)
as
begin
declare @dang int
declare @next int
declare @text varchar(200)
set @dang=1
while @dang<=len(@str)
begin
set @next=charindex(@spl,@str,@dang)
if @next=0 or @next is null
set @next=len(@str)+1
set @text=substring(@str,@dang,@next-@dang)
insert into @table values(@text)
set @dang=@next+1
end
return
end
go
llh6795 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 nightmaple 的回复:]
引用 24 楼 llh6795 的回复:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'xml' 附近有语法错误。


你装的什么版本?我用SQL2008是OK的

[/Quote]

2000
nightmaple 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 llh6795 的回复:]
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'xml' 附近有语法错误。
[/Quote]

你装的什么版本?我用SQL2008是OK的
llh6795 2010-07-01
  • 打赏
  • 举报
回复
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'xml' 附近有语法错误。
加载更多回复(11)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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