有三个不同的查询语句
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
分享到:
相关推荐
### Oracle 多个表空间合并成一个表空间详解 #### 背景介绍 在进行数据库维护时,可能会遇到需要将多个表空间合并为一个的情况。这种情况通常发生在新项目的开发过程中,尤其是当新项目需要引用来自其他表空间的...
- 虚拟表,基于一个或多个表的查询结果 - `CREATE VIEW view_name AS SELECT ...;` 创建视图 - 可用于简化复杂的查询或保护数据 这些实例将帮助你理解并熟练运用Oracle SQL,无论你是初学者还是经验丰富的开发者...
4. **批量INSERT**:为了提高执行效率,工具可能会将多行数据合并为一个INSERT语句,每个语句包含多个VALUES子句。 5. **格式化输出**:生成的INSERT语句可能会自动进行格式化,便于阅读和编辑。 6. **输出格式**:...
### ORACLE技巧 - 不同记录集的横向合并 #### 概述 在处理数据库操作时,经常需要对比两个记录集的差异,例如比较原先输入的订单数据与之后更新的订单数据之间的不同之处,并将这些差异展示给用户查看。在Oracle...
- `IN (value1, value2, ...)`:匹配多个值之一。 - `LIKE pattern`:使用通配符匹配,`%`代表任意数量的字符,`_`代表单个字符。 3. **排序查询**: - `ORDER BY column ASC/DESC`:按列进行升序或降序排序。 ...
这种方法通过使用Oracle中的字符串连接操作符“||”来合并多个字段值,形成一个新的字符串,然后对该字符串执行LIKE查询。 #### SQL语句示例: ```sql SELECT * FROM table_name WHERE ('column1' || 'column2') ...
9. **视图**:视图是虚拟表,基于一个或多个表的查询结果。创建视图后,可以像操作普通表一样进行查询,简化复杂查询并保护基础数据。 10. **存储过程和函数**:存储过程和函数是预编译的SQL语句集合,可以封装复杂...
6. **视图与索引**:视图是虚拟表,基于一个或多个表的查询结果,提供了一种简化数据访问的方式。索引则可以加速数据的检索速度。 7. **子查询和联接操作**:子查询用于在一个查询中嵌套另一个查询,而联接(JOIN)...
8. 适当使用索引合并(index skip scan),在多个索引上同时查询,提高效率。 9. 优化表的分区策略,根据数据分布和查询模式选择合适的分区方式。 10. 考虑使用并行查询,特别是处理大量数据时,可以显著提升处理...
4. **GROUP BY子句**:当需要根据一个或多个列对数据进行分组时,使用GROUP BY。常与聚合函数(如COUNT, SUM, AVG, MAX, MIN)一起使用,例如,`SELECT column1, COUNT(*) FROM table_name GROUP BY column1;`。 5....
6. **视图(VIEW)**:虚拟表,基于一个或多个表的查询结果,提供数据的逻辑视图。 7. **分区(PARTITIONING)**:将大表分成小块,优化大表的查询和维护。 8. **事务(TRANSACTION)**:确保数据的一致性和完整性,...
在Oracle中,还可以使用子查询和联接(INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN)来合并多个表的数据。 3. **DML操作**:INSERT用于插入新记录,UPDATE用于修改已存在的记录,DELETE用于删除记录。这些操作都...
此外,LEFT JOIN、RIGHT JOIN、INNER JOIN和FULL OUTER JOIN等连接查询也是必备技能,它们用于合并多个表的数据。 SQL优化原则是数据库高效运行的关键。这可能涉及到理解执行计划,识别并解决慢查询,合理设置...
IN 操作符可能会导致 Oracle 尝试将其转换成多个表的连接,如果转换不成功则先执行 IN 里面的子查询,再查询外层的表记录。 3. INDEX_JOIN 优化 使用 INDEX_JOIN 可以提高查询速度,特别是在多表关联时。 4. WHERE...
在Oracle数据库中,时间区间段的合并是...总结来说,Oracle时间区间段合并的算法利用了窗口函数和分组来识别和合并连续的时间段,能够有效地处理和分析时间序列数据,对于优化数据处理流程和提高查询效率具有重要意义。
11. **视图(View)**:视图是虚拟表,基于一个或多个表的查询结果,提供了一种简化复杂查询和保护数据的方式。 12. **索引(Index)**:加速查询性能的关键工具,通过创建索引,可以快速定位到数据行,尤其对于...
- **UNION ALL**:将多个查询结果合并为一个结果集,重复行也会被包含。 - **OVER() 子句**:定义了LEAD()函数的作用范围,这里按`app_no`排序。 - **|| 运算符**:字符串连接运算符,将字符串拼接在一起。 ##### 2...
- 视图:虚拟表,基于一个或多个表的查询结果,提供简化数据访问的接口。 - 索引:加速查询速度的数据结构,通过创建唯一或非唯一的索引来提高查询效率。 5. 分区和分区表: - 数据库分区是将大表分成较小、更易...
- 视图是虚拟表,基于一个或多个表的查询结果,如`CREATE VIEW 视图名 AS SELECT * FROM 表名;`。 9. 存储过程和函数: - 存储过程是一组预先编译的SQL语句,可重复使用,提高代码复用性。 - 自定义函数允许用户...