表a
姓名   注册号
张三   a
张三   b
李四   C
王五   d
王五   e
每个人名对应不同的注册号,此表中人名重复出现表b
注册号      终生码
a            1001
a            1001
b            1002
b            1002
c            1003
每个注册号对应唯一终生码,此表中注册号重复出现,实际中此表还有其他字段,所以不能去掉重复列
表c
终生码    页数
1001        7
1001        8
1002        9
1002        10
即此表中终生码重复出现多次,对应不同页数  现在我想:1 用一个SQL语句得到所有注册号各自对应的页数
          2 用一个SQL语句得到所有姓名各自对应的页数
不知怎么写,请大家帮助。

解决方案 »

  1.   

    1.select distinct 注册号,页数 from b,c where b.终生码=c.终生码2.想显示成什么格式的?可以用sys_connect_by_path来做
      

  2.   

    就是想显示成姓名      页数
    张三       ...
    李四       ....
    王五       ....
    不知sys_connect_by_path是什么东东
      

  3.   

    上面的第一条语句恐怕不能得到我想要的
    它会得到
    注册号   页数
    a        7
    a        8
    .........但我想得到的是
    注册号   页数
    a         15
    ...............
      

  4.   

    不好意思,前面的语句有问题
    select 注册号,sum(页数) from (select distinct 注册号,终生码 from b) d,c where c.终生码=d.终生码 group by 注册号;select 姓名,sum(页数) from a,(select distinct 注册号,终生码 from b) d,c where a.注册号=d.注册号 and d.终生码=c.终生码 group by 姓名