求 一个delphi sql查询语句

来源:百度知道 编辑:UC知道 时间:2024/06/02 15:21:21
有一个数据表(dtt)结构如下(课程数是不确定的,可能后面还有其他的):
姓名 课程 成绩
王蓝琏 英语 76
王蓝琏 语文 65
王蓝琏 数学 65
李星颜 英语 86
李星颜 语文 54
李星颜 数学 76
叶梦雪 英语 56
叶梦雪 语文 88
叶梦雪 数学 86
朱紫云 数学 64
朱紫云 英语 88

现在查询得出的数据表(rrt)如下:
姓名 语文 数学 英语 总计
王蓝琏 65 65 76 206
李星颜 54 76 86 216
叶梦雪 88 86 56 230
朱紫云 64 88 152

这个 查询语句是怎么写的?还有这server中sql存储语句是怎么写的呢,谢谢各位了哈

sqlserver2005下测试成功!

declare @sql varchar(8000)
set @sql=''

select @sql=@sql+','+rtrim(课程)+'=(SELECT isnull(SUM(case b.课程 when '''+课程+''' then ISNULL(b.成绩,0) end ),0) FROM ddt b where b.姓名=t.姓名)'
from ddt
group by 课程
order by 课程

set @sql='select t.姓名 AS 姓名 '+@sql+' , SUM(t.成绩) AS 总计 from ddt t group by t.姓名 '
exec(@sql)

给你个模板学习!!
学生编号 学生姓名 科别 分数
1083 张三 语文 75
1083 张三 数学 84
1083 张三 英语 92
1084 李四 语文 84
1084 李四 数学 93
1084 李四 英语 87

怎么得出如下的表
学生编号 学生姓名 语文 数学 英语
1083 张三 75 84 92
1084 李四 84 93 87

答案:
Select 学生编号,学生姓名,sum(case