select  
    at.atype                 as 事故类型,
    nvl(count(b.uid),0)      as 事故次数,
    nvl(sum(b.deathCount),0) as 死亡人数
from
    acciednt     at,
    acciedntUser au
where
    at.aID*=au.aID
group by
    at.aID,at.atype

解决方案 »

  1.   

    Oracle 9i以下版本:select  
        at.atype                 as 事故类型,
        nvl(count(b.uid),0)      as 事故次数,
        nvl(sum(b.deathCount),0) as 死亡人数
    from
        acciednt     at,
        acciedntUser au
    where
        at.aID=au.aID(+)
    group by
        at.aID,at.atype
    Oracle 9i及以上版本:select  
        at.atype                 as 事故类型,
        nvl(count(b.uid),0)      as 事故次数,
        nvl(sum(b.deathCount),0) as 死亡人数
    from
        acciednt     at
    left join
        acciedntUser au
    on
        at.aID*=au.aID
    group by
        at.aID,at.atype
      

  2.   

    更正之前的几处错误:
    ---------------------------------------------------------------------------------
    Oracle 9i以下版本:select  
        at.atype                 as 事故类型,
        nvl(count(b.uid),0)      as 事故次数,
        nvl(sum(b.deathCount),0) as 死亡人数
    from
        acciednt     at,
        acciedntUser au
    where
        at.aID(+)=au.aID
    group by
        at.aID,at.atype
    Oracle 9i及以上版本:select  
        at.atype                 as 事故类型,
        nvl(count(b.uid),0)      as 事故次数,
        nvl(sum(b.deathCount),0) as 死亡人数
    from
        acciednt     at
    left join
        acciedntUser au
    on
        at.aID=au.aID
    group by
        at.aID,at.atype
      

  3.   

    select atype 事故类型,count(uid) 事故次数 ,sum(deathCount) 死亡人数
    from acciednt a,acciedntUser b
    where a.aID=b.aID(+)
    group by a.atype
      

  4.   

    慢了。还是写一句~~~~
    select ac.atype 事故类型,count(au.uid) 事故次数 ,sum(au.deathCount) 死亡人数
    from acciednt ac,acciedntUser au
    where ac.aID=au.aID(+)
    group by ac.atype