 
  
      
        select
      
       ano,
      
        sum
      
      (nvl(dmoney,
      
        0
      
      
        )) summoney
      
      
        from
      
      
        (
 
      
      
        select
      
      
         t2.ano,d.dmoney
 
      
      
        from
      
      
         (
    
      
      
        select
      
       t1.
      
        *
      
      
        ,c.cno
    
      
      
        from
      
      
        (
      
      
      
        select
      
      
         a.ano,b.bno
      
      
      
        from
      
       t_a a 
      
        left
      
      
        join
      
       t_b b 
      
        on
      
       a.ano
      
        =
      
      
        b.ano
    )t1 
      
      
        left
      
      
        join
      
       t_c c 
      
        on
      
       t1.bno
      
        =
      
      
        c.bno
  )t2 
      
      
        left
      
      
        join
      
       t_d d 
      
        on
      
       t2.cno
      
        =
      
      
        d.cno
)
      
      
        group
      
      
        by
      
       ano;
    
  


 
					 
					