求一句有点难度的SQL语句,各位高手进来帮帮我!!小弟在线等啊

java1987 2005-12-14 11:23:48
name(名称) (jb)级别

A 1
A 2 ---表AB1
A 3
B 1

算出每个名称 级别个数
结果:

name a1 a2 a3

A 1 1 1 --表AB2
B 1 0 0

我想把表A数据查出来 以上面结果的形式添进表A2请各位帮忙了!
--测试环境!!!!
create table ab1
(name char,
jb int)
go
insert a1
select 'A',1 UNION ALL
select 'A',2 UNION ALL
select 'A',3 UNION ALL
select 'B',1
go
create table ab2
(name char,a1 int default 0 ,a2 int default 0 ,a3 int default 0)
go
如果答对了还可以另加30分
来这里报道就可以了
http://community.csdn.net/Expert/topic/4459/4459350.xml?temp=9.937686E-02
...全文
86 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Jpp 2005-12-15
select name,
case when exists(select 1 from ab1 where ab1.name=a.name and ab1.jb=1) then 1 else 0 end a1,
case when exists(select 1 from ab1 where ab1.name=a.name and ab1.jb=2) then 1 else 0 end a2,
case when exists(select 1 from ab1 where ab1.name=a.name and ab1.jb=3) then 1 else 0 end a3
from (select distinct name from ab1) a
回复
hpym365 2005-12-15
insert into ab2
select name,a1=sum(case when jb=1 then 1 else '' end),a2=sum(case when name=aa.name and jb=2 then 1 else '' end),
a3=sum(case when name=aa.name and jb=3 then 1 else '' end)
from a1 aa group by name
这个一定对 看看吧
回复
java1987 2005-12-15
insert into ab2
select name,a1=sum(case when jb=1 then 1 else '' end),a2=sum(case when name=aa.name and jb=2 then 1 else '' end),
a3=sum(case when name=aa.name and jb=3 then 1 else '' end)
from a1 aa group by name
这个一定对 看看吧
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2005-12-14 11:23
社区公告
暂无公告