一条SQL的查寻语句,麻烦下。

sxssg 2011-12-03 03:51:01
现有一表,如下:

学校 班级 学生 费用
一中 一年级 A 9
一中 一年级 B 9
一中 一年级 C 9
一中 二年级 D 9
二中 一年级 E 9
二中 一年级 F 9
二中 二年级 G 9
二中 二年级 H 10

要求 :要求查出每个学校对应班级的学生数量和费用总计,结果应该如下:
学校 一年级 二年级
学校 人数 费用 人数 费用
一中 3 27 1 9
二中 2 18 2 19


求查寻语句,年级可以不显示(一年级,二年级)这样的结果也行的,看的懂就好了。

学校 人数 费用 人数 费用
一中 3 27 1 9
二中 2 18 2 19





...全文
52 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-12-03
  • 打赏
  • 举报
回复
select
学校,
sum(case 班级 when '一年级' then 1 else 0 end) as 人数,
sum(case 班级 when '一年级' then 费用 else 0 end) as 费用,
sum(case 班级 when '二年级' then 1 else 0 end) as 人数,
sum(case 班级 when '二年级' then 费用 else 0 end) as 费用
from
tb
group by
学校
快溜 2011-12-03
  • 打赏
  • 举报
回复
create table tb(学校 varchar(10),班级 varchar(10),学生 varchar(2),费用 int)
insert into tb
select '一中','一年级','A',9 union all
select '一中','一年级','B',9 union all
select '一中','一年级','C',9 union all
select '一中','二年级','D',9 union all
select '二中','一年级','E',9 union all
select '二中','一年级','F',9 union all
select '三中','二年级','G',9 union all
select '三中','二年级','H',10


DECLARE @sql NVARCHAR(2000)
set @sql='select 学校'
select @sql=@sql+',sum(case 班级 when'''+班级+''' then 1 else 0 end) ['+班级+'人数],'+
'sum(case 班级 when'''+班级+''' then 费用 else 0 end) ['+班级+'费用]'
from tb group by 班级
SET @sql=@sql+' from tb group by 学校'
EXEC(@sql)

/*
学校 二年级人数 二年级费用 一年级人数 一年级费用
---------- ----------- ----------- ----------- -----------
二中 0 0 2 18
三中 2 19 0 0
一中 1 9 3 27

(3 行受影响)
AcHerat 元老 2011-12-03
  • 打赏
  • 举报
回复
行转列,楼主搜搜例子就会了。

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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