日期:2014-05-17  浏览次数:20819 次

如何按需要拼两个SQL?
一个表 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            201303

qfrq相同的 都会有个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


------解决方案--------------------
select a.*,b.mc   from A a,xt_auth_org b