select t2.num,t.* from Tab_Orgtree t , (select count(f.did) as num from Tab_Orgtree o,
Tab_Frontequipment f where o.orgId=f.dorgId  
and o.orgId=t.orgid or o.orgpath like t.orgpath||'/'||t.orgid||'%') t2
本意是想取得 t2里面的统计数据, 但是t2里面的 t.orgid 和t.orgpath都是 Tab_Orgtree t 这个里面的,这个语句需要改造下结构,一时忘记怎么改了,哪位大侠知道?

解决方案 »

  1.   

    select t2.num,t.* from Tab_Orgtree t , (select count(f.did), o.orgpath as num from Tab_Orgtree o, 
    Tab_Frontequipment f where o.orgId=f.dorgId  
    and o.orgId=t.orgid ) t2 
    where t2.orgpath like t.orgpath||'/'||t.orgid||'%'
      

  2.   

    貌似不对,and o.orgId=t.orgid  这个条件 关联了  t.orgid 
      

  3.   


    select t2.num,t.* from Tab_Orgtree t , (select count(f.did), o.orgpath as num from Tab_Orgtree o, 
    Tab_Frontequipment f where o.orgId=f.dorgId  
    and o.orgId=t.orgid ) t2 
    where t2.orgpath like t.orgpath||'/'||t.orgid||'%' 
      

  4.   

    select  
      (select count(f.did) num from Tab_Orgtree o, 
        Tab_Frontequipment f where o.orgId=f.dorgId  
        and o.orgId=t.orgid or o.orgpath like t.orgpath||'/'||t.orgid||'%') as num,
      t.* 
    from Tab_Orgtree t ;
      

  5.   

    select t.*,count(f.did) over(order by f.did) from Tab_Orgtree o, 
    Tab_Frontequipment f where o.orgId=f.dorgId  
    and o.orgId=t.orgid or o.orgpath like t.orgpath||'/'||t.orgid||'%'
    看看这个行不?
      

  6.   


    SELECT (SELECT COUNT(1)
              FROM tab_orgtree o, tab_frontequipment f
             WHERE o.orgid = f.dorgid
               AND (o.orgid = t.orgid
                OR o.orgpath LIKE t.orgpath || '/' || t.orgid || '%') group by f.dorgid) as num, t.*
      FROM tab_orgtree t