select a.account, a.telephone, a.rent, b.fee01, fee02, fee03, fee04 from
userlist a, 
(select telephone, sum(fee01) fee01, sum(fee02) fee02, sum(fee03) fee03, sum(fee04) fee04
from CHARGE group by telephone) b
where a.telephone = b.telephone(+)

解决方案 »

  1.   

    select a.telephone
         , a.account
         , sum(a.rent) over(partition by a.account)
         , sum(b.fee01) over(partition by a.account)
         , sum(b.fee02) over(partition by a.account)
         , sum(b.fee03) over(partition by a.account)
         , sum(b.fee04) over(partition by a.account)
    from   userlist a
         , charge   b
    where  a.telephone   = b.telephone(+)
      

  2.   

    SELECT a.account, sum(rent), sum(fee01), sum(fee02), sum(fee03), sum(fee04)
    FROM (
      SELECT u.account, u.rent, c.fee01, c.fee02, c.fee03, c.fee04
        FROM userlist u LEFT OUTER JOIN charge c
          ON(u.telephone=c.telephone)
         )
      

  3.   

    select account,count(*),nvl(sum(rent),0),nvl(sum(fee01),0),
    nvl(sum(fee02),0),nvl(sum(fee03),0),nvl(sum(fee04),0)
    from userlist a,charge b
    where a.telephone=b.telephone(+)
    group by account
    /这样才完整。