注册 登录
编程论坛 Oracle论坛

请各位大神帮助编SQL语句

ruizhaoz 发布于 2015-04-08 20:54, 4697 次点击
数据库中有A. B两张表
A表
姓名   科目   分数
张三   语文    98
张三   数学    99
李四   语文    95
李四   数学    94
王五   语文    97
王五   数学    100
 
B表
姓名   科目   分数
张三   语文   92
张三   数学    100
王五   语文    93
王五   数学    96
刘六   语文    99
刘六   数学    92
 
如要生成一个新表C
姓名       语文                                  数学
张三    A表语文分-B表语文分 A表数学分-B表数学分
王五    A表语文分-B表语文分 A表数学分-B表数学分
 
也就是将两个表中姓名相同的记录提出来,科目进行行列转换(人员及有多少科目不确定,有多少就要转多少),再将两表相同科目对应的分数相减作为分值(同一人同一科目出现两个以上记录时要先汇总后再相减),而且相减分值超过10时返回10,分值小于零时返回0
 
请问以上问题有没有办法用SQL语句实现?烦指点。谢谢!
3 回复
#2
ruizhaoz2015-04-12 10:08
如何统计科目个数(去掉重复记录)并賦值给一个数组,根据数组不同的值自动建多个子查询?
#3
xumengxue2015-04-29 15:20
我有个朋友会这个  你这个他能解决的
#4
灬雨2015-07-01 15:25
wmsys.wm_concat 用这个函数可以实现
1