求sql语句

xuxiaomei2707 2013-03-04 11:11:47
有一个类型表 tType
id typename
1 吃饭
2 睡觉
3 洗漱
4 工作

还有一个人员表tUser
uid types(这个字段存储的是tType表中的id,以逗号隔开的)
1 1,2,3
2 2,3
3 1,3
4 3
5 1

现在想统计每个类型被人员使用的情况,想得到的列表是
类型 个数
吃饭 吃饭的人3个
睡觉 睡觉的人2个
洗漱 洗漱的人4个
工作 工作的人0个

比喻可能有点不恰当,请大家帮忙写下sql语句吧,在线等......



...全文
208 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuxiaomei2707 2013-03-14
  • 打赏
  • 举报
回复
谢谢大家了,已结贴
idoiknow 2013-03-05
  • 打赏
  • 举报
回复
若是MSSQL应该改为: SELECT typename, (select count(uid) from tUser where ','+types+',' like '%,'+convert(varchar(10),id)+',%' )as num FROM tType
  • 打赏
  • 举报
回复

select typename 类型,个数=(select t.typename+'的人'+rtrim(count(1))+'个' from tuser where charindex(','+rtrim(t.id)+',',','+types+',')>0) from ttype t
全家福DHR 2013-03-04
  • 打赏
  • 举报
回复
SQL就不写了,麻烦,写个思路给你,可以在字段types值和字段id值里面最后加逗号,然后2张表关联查询即可,比如id=‘1,’可以查询到types=‘1,2,’或者=‘1,’
gxingmin 2013-03-04
  • 打赏
  • 举报
回复
上面写错了,改一下,把join改成,
select tType.typename AS 类型, tType.typename +'的人' + cast(count(1) as varchar(10)) + '个' AS 个数   from tType
, tUser where ',' + tUser.ttypes + ',' LIKE '%, + cast(tType.id as varchar(10)) + ',%'
group by tType.id, tType.typename 
gxingmin 2013-03-04
  • 打赏
  • 举报
回复
select tType.typename AS 类型, tType.typename +'的人' + cast(count(1) as varchar(10)) + '个' AS 个数   from tType
join tUser where ',' + tUser.ttypes + ',' LIKE '%, + cast(tType.id as varchar(10)) + ',%'
group by tType.id, tType.typename 
性能不会很高,所以建议你修改表结构,再加一个表 tUser与tType关系的表
idoiknow 2013-03-04
  • 打赏
  • 举报
回复
SELECT typename
,(select count(uid) from tUser where concat(',',types,',') like concat('%,',id,',%') )as num
FROM tType

经过测试,完全达到要求,截图:


另外,我用的是mySql测试,如果MS SqlServer运行有cancat函数不兼容的问题的话,请联系我。
a411361682 2013-03-04
  • 打赏
  • 举报
回复
次序关注AA
xuxiaomei2707 2013-03-04
  • 打赏
  • 举报
回复
引用 4 楼 hjywyj 的回复:
SQL code ? 12 select typename 类型,个数=(select t.typename+'的人'+rtrim(count(1))+'个' from tuser where charindex(','+rtrim(t.id)+',',','+types+',')>0) from ttype t
这个结果对
xuxiaomei2707 2013-03-04
  • 打赏
  • 举报
回复
得到的数据还是不对啊,我想得到的是显示所有的类型,然后每个类型对应被人员使用的个数 类型 个数 吃饭 3 睡觉 2 洗漱 4 工作 0

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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