create table test(xm varchar(100),km varchar(100),fs int)insert into test
select '张三','语文', 80 union
select '张三','数学', 90 union
select '张三','物理', 85 union
select '李四','语文', 85 union
select '李四','数学', 92 union
select '李四','物理', 82 union
select '王五','数学', 60 select xm,
max(case when km='语文' then fs else 0 end) 语文,
max(case when km='数学' then fs else 0 end) 数学,
max(case when km='物理' then fs else 0 end) 物理
from test
group by xm
/*
李四 85 92 82
王五 0 60 0
张三 80 90 85
*/
drop table test
select '张三','语文', 80 union
select '张三','数学', 90 union
select '张三','物理', 85 union
select '李四','语文', 85 union
select '李四','数学', 92 union
select '李四','物理', 82 union
select '王五','数学', 60 select xm,
max(case when km='语文' then fs else 0 end) 语文,
max(case when km='数学' then fs else 0 end) 数学,
max(case when km='物理' then fs else 0 end) 物理
from test
group by xm
/*
李四 85 92 82
王五 0 60 0
张三 80 90 85
*/
drop table test
解决方案 »
- 求购一个体育俱乐部网站,详细请进
- C# winform :datagridview如何对动态的表进行增删改?
- C#中加断点和不加断点执行的结果为什么不一样
- 关于创建数据库连接的问题,求教
- 请高手帮帮忙怎么用C#获取 打开文件的路径
- 空记录时,如何显示网页上DataGrid的标题栏呢?我在用DataGrid时,没有记录就完全不显示出来的,还请大虾们指点指点
- WinForm的窗口大小的问题(谢谢大家,急)
- 如何把一个值从一个窗口传到另一个窗口?
- 用C#如何对数组进行插入操作?
- 在C#中如何显式的释放一个对象?
- 紧急加分问题,寻求解决办法,帮着以身相许,呵呵
- freetextbox配置好以后向数据库中添加数据出错?求帮忙解决原因,说是客户端有潜在危险
select '张三','语文', 80 union
select '张三','数学', 90 union
select '张三','物理', 85 union
select '李四','语文', 85 union
select '李四','数学', 92 union
select '李四','物理', 82 union
select '王五','数学', 60 select xm,
max(case when km='语文' then fs else 0 end) 语文,
max(case when km='数学' then fs else 0 end) 数学,
max(case when km='物理' then fs else 0 end) 物理,
sum(fs)合计
from test
group by xm
/*
李四 85 92 82 259
王五 0 60 0 60
张三 80 90 85 255
*/
drop table test
declare @sql varchar(4000)
set @sql = 'select 姓名'
select @sql = @sql + ',sum(case 学科 when '''+学科+''' then 成绩 end) as '+学科
from (select distinct 学科 from CJ) as a
set @sql = @sql+' from cj group by 姓名'
exec(@sql)請在這個基礎上修改