一个表 A
SELECT * FROM A where qfrq='201303' order by org asc
显示 例如:
a    org            qfrq
1   220001         201303
5   220002         201303
4   220003         201303
2   220004         201303
12   TO            201303qfrq相同的 都会有个org=TO ,为合计 ,比如 12=1+5+4+2
A表要关联一个单位表,显示org名称
select a.*,b.mc   from A a,xt__org b  
where 1=1 and qfrq='201303' and a.org = b.orgid  order by org asc
现在要把org=TO 的也查询到,并放到第一行
这样写:
select a.*,'总计' MC  from A a where a.org='TO'  and qfrq='201303'
union
select a.*,b.mc   from A a,xt_auth_org b  
where 1=1 and qfrq='201303' and a.org = b.orgid  order by org asc但提示 org 无效 ,应该是order by org asc 这的问题, 如果不加 order by org asc 可以查询到,
但 总计 不是第一行,并且其他的单位顺序是乱的,请问如何修改?
希望达到的效果例如:
a    org            qfrq     mc 
12   TO            201303    总计
1   220001         201303    城市A
5   220002         201303    城市B
4   220003         201303    城市C
2   220004         201303    城市D

解决方案 »

  1.   

    select a.*,b.mc   from A a,xt_auth_org b  
    where 1=1 and qfrq='201303' and a.org = b.orgid  order by org asc
    这段代码再嵌套一层不行么?
    select * from (
    select a.*,b.mc   from A a,xt_auth_org b  
    where 1=1 and qfrq='201303' and a.org = b.orgid  order by org asc)
      

  2.   

    org=TO 的如何放到第一行呢?
      

  3.   


    order by decode(org,'TO','随便找一个能排到前面的数据',org)
      

  4.   

    ORACLE 最好放在最外层,放在里面有时排序是无效的,甚至有时是编译不能通过的