A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 咖喱猫 中级黑马   /  2013-7-22 22:56  /  1552 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. (select count(Student.mzId)as 人数,Minzu.name as 民族 from Minzu
  2. INNER JOIN
  3. dbo.Student ON dbo.Minzu.id = dbo.Student.mzId
  4. group by Minzu.name )

复制代码

第一张图片为查询结果,现在想实现一个行列转换的功能如图第二章,求解答

评分

参与人数 1技术分 +1 收起 理由
zhangcheng5468 + 1 很给力!

查看全部评分

4 个回复

倒序浏览
  1. select

  2. SUM(case name when '藏族' then peopleCount end) as [藏族],
  3. SUM(case name when '朝鲜族' then peopleCount end) as [朝鲜族],
  4. SUM(case name when '汉族' then peopleCount end) as [汉族],
  5. SUM(case name when '苗族' then peopleCount end) as [苗族],
  6. SUM(case name when '维吾尔族' then peopleCount end) as [维吾尔族]

  7. from Minzu
复制代码
回复 使用道具 举报
  1. select
  2. case Minzu.name when '藏族' then count(Student.mzId) end as [藏族],
  3. case Minzu.name when '朝鲜族' then count(Student.mzId) end as [朝鲜族],
  4. case Minzu.name when '汉族' then count(Student.mzId) end as [汉族],
  5. case Minzu.name when '苗族' then count(Student.mzId) end as [苗族],
  6. case Minzu.name when '维吾尔族' then count(Student.mzId) end as [维吾尔族]
  7. from Minzu inner join Student on Minzu.id=Student.mzId
  8. group by Minzu.name
复制代码
回复 使用道具 举报

很感您同学的参与回答,不过这么写不符合要求了;现在的要求就是两表查询,并且是动态的
回复 使用道具 举报
咖喱猫 发表于 2013-7-23 08:37
很感您同学的参与回答,不过这么写不符合要求了;现在的要求就是两表查询,并且是动态的 ...

可能是我错了吧,同学你的问题都是难度太大的,我无能为力

jdfw.gif (521.59 KB, 下载次数: 0)

jdfw.gif
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马