SQL语句挑战透视表

none 2000-01-24 03:54:00
假设一个表中的列设置如下:学生,科目,成绩.

用PB的CROSSTAB可以实现以科目为列,学生为行的成绩单,如果数据存储在EXCEL文件里,
可以用透视表来解决.

目前的目标是:仅用SQL语句实现透视表的效果.

目前的进展是:如果科目是已知且固定的(三科:数理化),可以实现(用CASE)

目前的问题是:写出通用的SQL语句,无论表中的科目有多少,科目名称是什么,都能
达到透视表的效果

我已经找了一周了,实在不行,向各位大虾求助!
...全文
363 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
none 2000-02-16
  • 打赏
  • 举报
回复
我写了一个存储过程解决了这个问题,用到了动态SQL和光标
谢谢各位的帮助!
july 2000-02-14
  • 打赏
  • 举报
回复
use temp table
none 2000-02-12
  • 打赏
  • 举报
回复
seeker,

不使用CURSOR如何将科目加到CASE中,可否说得再详细一些?

谢谢
seeker 2000-01-30
  • 打赏
  • 举报
回复
我写过很多这种东西,一般可以通过动态生成一个SQL语句完成,
先读出有多少科目,动态生成CASE,把学生成绩按科目分类,然后,
再在综合起来,通过EXEC执行。

无需临时表、cursor。

xeen4 2000-01-28
  • 打赏
  • 举报
回复
你如果要得知每个学生的各科分数。
可以建立科目表,并对科目表和学生成绩表作关联查询。

btw:什么是透视表????????????
Michael 2000-01-27
  • 打赏
  • 举报
回复
如果使用SQL Server,可用Cross Join试试。
rmh 2000-01-26
  • 打赏
  • 举报
回复
1.Create table temp
2.declare cursor for distinct item
3.while fetch itemname
4.alter table add column itemname char(4)(using dynamic SQL)
5.update/insert(first time) temp itemname= select
请考虑以上描述,test...
rmh 2000-01-24
  • 打赏
  • 举报
回复
用动态SQL试试

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧