菜鸟想问一个sql语句,请高手指教一下。(200)

  • 主题发起人 wanglong2
  • 开始时间
W

wanglong2

Unregistered / Unconfirmed
GUEST, unregistred user!
表一:班号 大类 数量 金额 一班 电视 1 10一班 电脑 2 30二班 电脑 5 90我想得到的表结构是大类 一班数量 一班金额 二班数量 二班金额电视 1 10 0 0电脑 2 30 5 90这样的sql语句怎么写呢??
 
列转行 自己搜
 
比如将如下信息:学号 课程名称 成绩211 java 85212 java 86211 数据库 88212 数据库 75转化成:学号 java 数据库211 85 88212 86 75这里面就用到了行列转换。 这么写的:select 学号,sum(case 课程名称 when ‘java’ then 成绩 end) as java,sum(case 课程名称 when ‘数据库’ then 成绩 end) as 数据库from table_namegroup by 学号
 
--动态SQL,指subject不止语文、数学、物理这三门课程。declare @sql varchar(8000)set @sql = 'select Name as ' + '姓名'select @sql = @sql + ' , max(case Subject when ''' + Subject + ''' then Result else 0 end) [' + Subject + ']'from (select distinct Subject from tb) as aset @sql = @sql + ' from tb group by name'exec(@sql)
 
select 大类,sum(case when 班号=1 then 金额 else 0 end),sum(case when 班号=1 then 数量 else 0 end),sum(case when 班号=2 then 金额 else 0 end),sum(case when 班号=2 then 数量 else 0 end)from 表1group by 大类order by 大类
 
顶部