问题:Oracle 中怎么把两张行数不同的表合并成一个表?Sql 为:select s.stagename sname,sum(nworkhours) nworkhours,sum(OVERHOURS) OVERHOURS,sum(nworkhours+OVERHOURS)from T_WorkDetails w,t_stage swhere w.stageid=s.stageid and w.projectid="D0927380468F4A4EE04010AC0C051F15"group by s.stagenameORDER by s.stagename 显示为: 第二个SQL 为:select sum(total) as temptal from (select s.stagename sname,sum(nworkhours) nworkhours,sum(OVERHOURS) OVERHOURS,sum(nworkhours+OVERHOURS) totalfrom T_WorkDetails w,t_stage swhere w.stageid=s.stageid and w.projectid="D0927380468F4A4EE04010AC0C051F15"group by s.stagenameORDER by s.stagename) 显示为: 想要显示的结果为: 核心思想:select * from (表A,表B) 总体的sql如下:select * from (select s.stagename sname, sum(nworkhours) nworkhours, sum(OVERHOURS) OVERHOURS, sum(nworkhours+OVERHOURS)from T_WorkDetails w, t_stage swhere w.stageid=s.stageid and w.projectid="D0927380468F4A4EE04010AC0C051F15"group by s.stagenameORDER by s.stagename) t1,(select sum(total) as temptal from (select s.stagename sname, sum(nworkhours) nworkhours, sum(OVERHOURS) OVERHOURS, sum(nworkhours+OVERHOURS) totalfrom T_WorkDetails w, t_stage swhere w.stageid=s.stageid and w.projectid="D0927380468F4A4EE04010AC0C051F15"group by s.stagenameORDER by s.stagename)t2) 注意:行数少的那一张表会自动补齐行数和行数多的那一张表对应ORA-01940: cannot drop a user that is currently connected 问题解析Oralce中返回结果集的存储过程ref cursor相关资讯 Oracle入门基础教程 Oracle 添加列 Oracle 多行合并
- Linux x86 and x86-64 系统中的 (08/05/2014 10:12:29)
- Oracle系统繁忙时,快速定位 (02/18/2013 19:31:55)
- Oracle手工建库笔记 (12/28/2012 11:45:03)
| - Oracle 中极易混淆的几个 NAME 的 (07/29/2014 21:04:17)
- Oracle数据库用SQL实现快速分页 (12/29/2012 14:02:30)
- Oracle自治事务引起的死锁 (12/27/2012 18:30:46)
|
本文评论 查看全部评论 (0)