select  org_name ,flag0,flag1 
from
(select org_id,sum(decode(org_id,0,1)) flag0,
sum(decode(org_id,1,1)) flag1 from t_info
group by org_id
) t left join t_org
on t_org.org_id=t.org_id

解决方案 »

  1.   

    to:welyngj(平平淡淡) 
    我按照你的sql语句,可以得到
    org_name |flag0|flag1
    厂长室 |3    |3其他空的还是得不到呀。
      

  2.   

    select  org_name ,flag0,flag1 
    from
    (select org_id,sum(decode(org_id,0,1,0)) flag0,
    sum(decode(org_id,1,1,0)) flag1 from t_info
    group by org_id
    ) t right join t_org
    on t_org.org_id=t.org_id
      

  3.   

    这次应该正确了
    select  org_name ,nvl(flag0,0) flag0,nvl(flag1,0) flag1
    from
    (select org_id,sum(decode(org_id,0,1,0)) flag0,
    sum(decode(org_id,1,1,0)) flag1 from t_info
    group by org_id
    ) t right join t_org
    on t_org.org_id=t.org_id
      

  4.   

    to welyngj(平平淡淡)
    我运行
    select  org_name ,flag0,flag1 
    from
    (select org_id,sum(decode(org_id,0,1)) flag0,
    sum(decode(org_id,1,1)) flag1 from t_info
    group by org_id
    ) t left join t_org
     **
    on t_org.org_id=t.org_id时,提示我 933错误 sql command not propeyly ended
    星号打在 t left 的前边
    我的也是oracle8I啊
      

  5.   

    select  org_name ,flag0,flag1 
    from
    (select org_id,sum(decode(org_id,0,1)) flag0,
    sum(decode(org_id,1,1)) flag1 from t_info
    group by org_id
    ) t ,t_org
    where t_org.org_id=t.org_id(+)