怎样做多表汇总?

angelqdd 2006-08-13 08:32:20
表1
院系名称 专业编号 学号 姓名
中文学院 0101 00140001 李成
管理学院 0102 00140002 白智诚
管理学院 0102 00140008 秦成
中文学院 0101 00140003 梁涛
中文学院 0101 00140004 廖志国
表2
专业编号 类别
0101 师范
0102 非师范
表3
学号 姓名 学费 住宿费
00140001 李成 2050.00 800.00
00140002 白智诚 2050.00 800.00
00140003 梁涛 2050.00 800.00
结果
院系 师范学费 人数 非师范学费 人数 住宿费 人数


...全文
155 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
angelqdd 2006-08-13
  • 打赏
  • 举报
回复
谢谢,试试看
zhenmeiyisi 2006-08-13
  • 打赏
  • 举报
回复


create table t1(院系名称 varchar(100), 专业编号 varchar(100), 学号 varchar(100),姓名 varchar(100))

insert into t1 select '中文学院','0101','00140001','李成'
union all select '管理学院','0102','00140002','白智诚'
union all select '管理学院','0102','00140008','秦成'
union all select '中文学院','0101','00140003','梁涛'
union all select '中文学院','0101','00140004','廖志国'


create table t2 (专业编号 varchar(100), 类别 varchar(100))
insert into t2 select '0101','师范'
union all select '0102','非师范'


create table t3 (学号 varchar(100),姓名 varchar(100),学费 numeric(10,2),住宿费 numeric(10,2))
insert into t3 select '00140001','李成',2050.00,800.00
union all select '00140002','白智诚',2050.00,800.00
union all select '00140003','梁涛',2050.00,800.00

---

select 院系名称,sum(case when 类别='师范' then 学费 else 0 end) 师范学费,sum(case when 类别='师范' then 1 else 0 end) 师范人数,sum(case when 类别='非师范' then 学费 else 0 end) 非师范学费,sum(case when 类别='非师范' then 1 else 0 end) 非师范人数,sum(住宿费),count(*) as 人数
from t1,t2,t3 where t1.专业编号=t2.专业编号 and t1.学号=t3.学号 group by 院系名称

34,590

社区成员

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

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