两张表中相同的字段相加

o12369874leng 2011-08-24 04:33:42
第1张表,表名:a
time 编号 容量 台数 次数 数量
2011-06 杭州 12 21 13 14
2011-06 丽水 15 16 17 18
2011-07 杭州 19 20 23 24
2011-07 丽水 25 26 27 28
第2张表,表名:b
time 编号 容量 台数
2011-06 杭州 12 21
2011-06 丽水 15 16
2011-07 杭州 19 20
2011-07 丽水 25 26
我想得到的结果,第一张表+第2张表中相同的字段,没有的保留,结果存在第三张表:C中 结果如下,最好可以写个VIEW
time 编号 容量 台数 次数 数量
2011-06 杭州 24 42 13 14
2011-06 丽水 30 32 17 18
2011-07 杭州 38 40 23 24
2011-07 丽水 50 52 27 28
...全文
205 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanzs 2011-08-24
  • 打赏
  • 举报
回复

select time,编号,sum(容量) 容量,sum(台数) 台数,sum(次数) 次数,sum(数量) 数量
from
(
select time,编号,容量,台数,次数,数量 from a
union all
select time,编号,容量,台数,0 次数,0 数量 from b
)
group by time,编号
opps_zhou 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 o12369874leng 的回复:]
你写的这两行代码:
nvl(a.次数, b.次数) as "次数",
nvl(a.数量, b.数量) as "数量"
中b.次数,b.数量 可是b表中是没有“次数” 和“数量”的啊
[/Quote]

我只是举个例子,没有的话可以用 nvl(a.次数,0) 这样
o12369874leng 2011-08-24
  • 打赏
  • 举报
回复
你写的这两行代码:
nvl(a.次数, b.次数) as "次数",
nvl(a.数量, b.数量) as "数量"
中b.次数,b.数量 可是b表中是没有“次数” 和“数量”的啊
opps_zhou 2011-08-24
  • 打赏
  • 举报
回复

select nvl(a.time, b.time) as time,
nvl(a.编号, b.编号) as "编号",
nvl(a.容量, 0) + nvl(b.容量, 0) as "容量",
nvl(a.台数, 0) + nvl(b.台数, 0) as "台数",
nvl(a.次数, b.次数) as "次数",
nvl(a.数量, b.数量) as "数量"
from a full join b
on a.time = b.time
and a.编号 = b.编号;

2,668

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 认证与考试
社区管理员
  • 认证与考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧