牛骨文教育服务平台(让学习变的简单)
博文笔记

Oracle 多个查询语句结果合并

创建时间:2016-01-29 投稿人: 浏览次数:8601


有三个不同的查询语句 1:

select year_mon,sum(gasmon) 
from a 
where id="HBsRf0t6UI" 
and class=11 
group by year_mon 
2:
select year_mon,sum(wellgasmon) 
from b 
where id="HBsRf0t6UI" 
and class=11 
group by year_mon
3:
select year_mon,sum(gasprodmon) 
from c 
where id="HBsRf0t6UI" 
and class=11 
group by year_mon 
希望能显示出下面的效果:
year_mon sum(gasmon) sum(wellgasmon) sum(gasprodmon) 
200702 122 222 123 
200703 333 234 342 
200704 0 2334 0 
200705 324 2342 234 
这样的效果也行。 问题解决
SELECT year_mon, SUM (gasmon), SUM (wellgasmon), SUM (gasprodmon)
 FROM (SELECT year_mon, SUM (gasmon) gasmon, 0 wellgasmon, 0 gasprodmon
 FROM a
 WHERE ID = "HBsRf0t6UI" AND CLASS = 11
 GROUP BY year_mon
 UNION ALL
 SELECT year_mon, 0, SUM (wellgasmon), 0
 FROM b
 WHERE ID = "HBsRf0t6UI" AND CLASS = 11
 GROUP BY year_mon
 UNION ALL
 SELECT year_mon, 0, 0, SUM (gasprodmon)
 FROM c
 WHERE ID = "HBsRf0t6UI" AND CLASS = 11
 GROUP BY year_mon)
GROUP BY year_mon

真实应用

SELECT
	bbb 月份,
	SUM (aaa),
	SUM (ccc)
FROM
	(
		SELECT
			TO_CHAR (b.CREATE_TIME, "yyyy-mm") bbb,
			COUNT (b. ID) aaa,
			0 ccc
		FROM
			xxx.ORDER_ b
		WHERE
			b.PAY_AMOUNT IS NULL
		GROUP BY
			TO_CHAR (b.CREATE_TIME, "yyyy-mm")
		UNION ALL
			SELECT
				TO_CHAR (c.CREATE_TIME, "yyyy-mm"),
				0,
				COUNT (c. ID) ccc
			FROM xxx.ORDER_ c <span style="font-family: Arial, Helvetica, sans-serif;">WHERE</span>
				c.state = - 1
			GROUP BY
				TO_CHAR (c.CREATE_TIME, "yyyy-mm")
	)
GROUP BY
	bbb
ORDER BY
	bbb;



            
                
				
			
		
        	
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。