比如有张数据表
name subject Source
张三 001 60
李四 002 70
王五 003 80
王五 002 75
王五 001 57
李四 001 80
张三 003 100
张三 004 50
李四 005 90
王五 006 90其中 subject对应的是另外一张代码表,包括所有科目代码,如下所示:
subject code
语文 001
数学 002
英语 003
线性代数 004
计算机基础 005
电学 006
数据结构 007
C语言 008等等
我的问题是这样,怎么实现行为name,列为subject的交叉表,如下所示,其中列是不确定的,而且交叉表中的subject必须转换成相应的汉语名称,而不能显示为代码。不知如何实现,请高手指教
姓名 语文 数学 英语 线性代数 计算机基础 电学
张三 60 100
李四 80 70 90
王五 57 75 80 90
如果第二次统计,新增了学生的其它成绩记录,比如数据结构,C语言等等,则列向所示课目自动增加,如下所示
姓名 语文 数学 英语 线性代数 计算机基础 电学 数据结构 C语言
张三 60 100
李四 80 70 90
王五 57 75 80 90
钟浩 60 60 100 100
name subject Source
张三 001 60
李四 002 70
王五 003 80
王五 002 75
王五 001 57
李四 001 80
张三 003 100
张三 004 50
李四 005 90
王五 006 90其中 subject对应的是另外一张代码表,包括所有科目代码,如下所示:
subject code
语文 001
数学 002
英语 003
线性代数 004
计算机基础 005
电学 006
数据结构 007
C语言 008等等
我的问题是这样,怎么实现行为name,列为subject的交叉表,如下所示,其中列是不确定的,而且交叉表中的subject必须转换成相应的汉语名称,而不能显示为代码。不知如何实现,请高手指教
姓名 语文 数学 英语 线性代数 计算机基础 电学
张三 60 100
李四 80 70 90
王五 57 75 80 90
如果第二次统计,新增了学生的其它成绩记录,比如数据结构,C语言等等,则列向所示课目自动增加,如下所示
姓名 语文 数学 英语 线性代数 计算机基础 电学 数据结构 C语言
张三 60 100
李四 80 70 90
王五 57 75 80 90
钟浩 60 60 100 100
这如果在前台用程序,那就很容易搞定了。
至于你想直接通过sql语句实现,那你要多看看PL/SQL打印报表的内容了。