注册 登录
编程论坛 ASP.NET技术论坛

紧急求援,比较复杂的交叉表问题

zhj9112 发布于 2007-05-15 13:00, 687 次点击
有表结构如下:
id 学期 学号 语文成绩 数学成绩 评语
1 1 10 88 90 有进步
2 1 15 80 80 继续努力
3 2 10 90 95 继续努力
4 2 20 90 60 数学要加把劲

希望最终显示的结果格式如下:
学号 10 15 20
学期

1 语文成绩 88 80
数学成绩 90 80
评语 有进步 继续努力


2 语文成绩 90 90
数学成绩 95 60
评语 继续努力 数学要加把劲


如果想使用SQL,如何实现,拜托各位了!
7 回复
#2
bygg2007-05-15 13:39
SQL版里有现成的.去找找吧..
#3
zhj91122007-05-15 13:56
太难找了,哪位能说的更详细一些呢,实在是非常着急。
#4
bygg2007-05-15 14:24
要别人给你全部写出来吗?
#5
Kendy1234562007-05-15 15:00
去找with rollup相关的贴
#6
zhj91122007-05-15 17:40
有关Rollup的贴,共找到两篇,分别如下:

(1)请教with cube和with rollup的用法??
(2)rollup和cube问题


可我依照上述方法却得不到我希望的结果,能否帮忙将具体的SQL写出来呢,所有的数据都在一个表中,写出来应该不困难吧,再一次对大家的帮助表示感谢。
#7
Kendy1234562007-05-15 18:00

得不到你希望的结果是正常的 因为你最后的结果不是按表的字段来排的
当然要自己做些处理.
行列转置 SQL版也有贴 但是你这里不光光是行列转置的问题 你最后结果的列数是不确定的

一句话 你的数据库设计不是按照你的报表设计格式来的 用水晶报表也没办法直接做出来
实现的方法很多种 可以在数据库里实现(比如用游标读一行写1列的5节) 也可以在外面实现 但是都很麻烦.

#8
zhj91122007-05-16 13:49

基本明白了,多谢,那我再想想别的办法。

1