日期:2014-05-17  浏览次数:20845 次

▲请问这个SQL语句该怎么写,谢谢各位了!(有答案立刻结分)
oracle有两个表:
【Table1】
id  xh(学号)  xm(姓名)  xb(性别)  nl(年龄)
1   001       张三      男        17
2   003       李四      女        18
3   007       王五      男        19
------------------------------------
【Table2】
id  xh(学号)  km(科目)  fs(分数)
1   001       A         90
2   001       B         80
3   001       C         70
4   001       D         60
5   003       A         95
6   003       B         85
7   003       C         75
8   003       D         65
9   005       A         85
10  005       C         75
11  006       B         65
------------------------------------
最终想得到以下结果:
【Table_New】
id  xh(学号)  xm(姓名)  xb(性别)  nl(年龄)  fsAB(分数)  fsCD(分数)
1   001       张三      男        17        170         130
2   003       李四      女        18        180         140
3   007       王五      男        19          0           0
------------------------------------
1、Table1.xh=Table2.xh
2、【Table_New】显示的数据总数与【Table1】数据总数相同(左联接)
3、【字段fsAB】是【科目A】与【科目B】的和
4、【字段fsCD】是【科目C】与【科目D】的和
5、对于Table2没找到对应份数的,均以0替代。
------------------------------------

------解决方案--------------------

SELECT t1.*,
       NVL(t2.fsAB,0) fsAB,
       NVL(t2.fsCD,0) fsCD
  FROM table1 t1
  LEFT JOIN (
             
             SELECT