select g.borg_name,sum(t8) 全民,sum(t14) 集体
 from ps_person_report t,ps_borg g
where t.borg_id=g.borg_id and t.r_month=1 and t.r_type=1 and r_year=2009 group by g.borg_name 
我这样写是对的,我有没有办法把下面这句加到select 里呢,
(select sum(t2) from  ps_person_report m where dpt_etype in('非电行业','发电行业') and m.r_month=1 and m.r_type=1 and m.r_year=2009 and m.borg_id=t.borg_id)----------
结果是这样的,但运行不了select g.borg_name,sum(t8) 全民,sum(t14) 集体,
(select sum(t2) from  ps_person_report m where dpt_etype in('非电行业','发电行业') and m.r_month=1 and m.r_type=1 and m.r_year=2009 and m.borg_id=t.borg_id)
 from ps_person_report t,ps_borg g
where t.borg_id=g.borg_id and t.r_month=1 and t.r_type=1 and r_year=2009 group by g.borg_name有没有办法帮我改进一下

解决方案 »

  1.   

    我是要多查出一列的值,但这列需要关联才能算出,就是这个(select sum(t2) from  ps_person_report m where dpt_etype in('非电行业','发电行业') and m.r_month=1 and m.r_type=1 and m.r_year=2009 and m.borg_id=t.borg_id)但一加group by 就不行,运行不了了
      

  2.   

    这样看清楚些
    select 
        g.borg_name,
        sum(t8) 全民,
        sum(t14) 集体,
        (select sum(t2)
         from ps_person_report m
         where dpt_etype in ('非电行业', '发电行业')
         and m.r_month = 1
         and m.r_type = 1
         and m.r_year = 2009
         and m.borg_id = t.borg_id
        )
    from 
        ps_person_report t, 
        ps_borg g
    where t.borg_id = g.borg_id
    and t.r_month = 1
    and t.r_type = 1
    and r_year = 2009
    group by g.borg_namselect 
        g.borg_name,
        sum(t8) 全民,
        sum(t14) 集体,
        (select sum(t2)
         from ps_person_report m
         where dpt_etype in ('非电行业', '发电行业')
         and m.r_month = 1
         and m.r_type = 1
         and m.r_year = 2009
         and m.borg_id = t.borg_id
        )
    from 
        ps_person_report t, 
        ps_borg g
    where t.borg_id = g.borg_id
    and t.r_month = 1
    and t.r_type = 1
    and r_year = 2009
    group by g.borg_nam
      

  3.   

    (select sum(t2) 
        from ps_person_report m 
        where dpt_etype in ('非电行业', '发电行业') 
        and m.r_month = 1 
        and m.r_type = 1 
        and m.r_year = 2009 
        and m.borg_id = t.borg_id 
        ) 
    中间的这个子查询需要聚合
      

  4.   

    select ,,,,,,,,,
                   from(
                group by 过的那个结果集,
                  括号里的那个结果集)
      

  5.   

    select 
        g.borg_name, 
        sum(t8) 全民, 
        sum(t14) 集体,
        m.t2 
        from 
        ps_person_report t, 
        ps_borg g,
        (select sum(t2) t2
        from ps_person_report m 
        where dpt_etype in ('非电行业', '发电行业') 
        and m.r_month = 1 
        and m.r_type = 1 
        and m.r_year = 2009 
        and m.borg_id = t.borg_id 
        ) m 
    where t.borg_id = g.borg_id 
    and t.r_month = 1 
    and t.r_type = 1 
    and r_year = 2009 
    group by g.borg_nam 
    (select sum(t2) from  ps_person_report m where dpt_etype in('非电行业','发电行业') and m.r_month=1 and m.r_type=1 and m.r_year=2009 and m.borg_id=t.borg_id) 
    这个select语句应该是返回一条记录吧?
      

  6.   

    select a.* from (select * from (select g.borg_id, g.borg_name,sum(t8) "全民",sum(t14) "集体" 
    from ps_person_report t,ps_borg g,ps_person_report t2
    where t.borg_id=g.borg_id and t.r_month=1 and t.r_type=1 and r_year=2009 group by g.borg_name,g.borg_id) t left join on ps_person_report m on m.borg_id=t.borg_id where m.dpt_etype in('非电行业','发电行业') and m.r_month=1 and m.r_type=1 and m.r_year=2009 group by t.borg_id, "全民","集体" ;