日期:2014-05-18  浏览次数:20577 次

真正的专业问题待答
表A:
UserID   varchar(50)   //学生编码
ClassID   varchar(50)   //班级编码
UserName   varchar(50)   //姓名
TypeID   varchar(50)   //所属组

数据内容如下:
UserID   ClassID   UserName   TypeID
1001       1               张三           10
1002       2               李四           11
1003       3               王五           12
1004       4               赵六           12
1006       3               韩七           11
1007       2               马八           13

表B:
ClassID   varchar(50)
ClassName   varchar(50)

数据内容如下:
ClassID   ClassName
1               一班
2               二班
3               三班
4               四班
表C:
TypeID   varchar(50)
TypeName   varchar(50)

数据内容如下:
TypeID   TypeName
10           第一组
11           第二组
12           第三组
13           第四组

现在的要求是统计出如下的表:

班级     第一组人数     第二组人数     第三组人数     第四组人数     合计
一班     1                       1                       2                       1                         5
二班     2                       1                       2                       3                         8
三班     1                       3                       1                       1                         6
四班     3                       3                       2                       1                         9

各位老大,这是我辛苦手工写出来的,很多系统统计经常用到的功能,但是大多数都是一个一个字段的统计,极费资源,大家好好看看,如何用最少的SQL实现,并达到最佳资源利用?

------解决方案--------------------
--楼主给的数据和你要的结果不对啊!

drop table 表A,表B,表C
go
create table 表A(UserID varchar(50),ClassID varchar(50),UserName varchar(50),TypeID varchar(50))
insert into 表A
select '1001 ', '1 ', '张三 '