SQL 表合并 统计,救火啊

来源:百度知道 编辑:UC知道 时间:2024/05/07 04:33:47
表A
名称 数量 其它
a 2
a 5
b 4
表B
名称 数量 其它
a 3
c 4
怎么在这两张表中查出
名称 数量
a 10
b 4
c 4
那我写的
select r1,sum(r2) form
(
select a.name as r1, a.num as r2
from A a
union
select b.name as r1, b.num as r2
from B b
)
group by r1 怎么回不行?我用的是ORACLE数据库

select 名称 ,数量 from
(Select * From A union Select * From B) T
group by 名称

一是:
select X.a,X.b,X.c into #tmp from 表A X

insert into #tmp (a,c)
select Y.a,Y.c from 表B Y

--汇总
select sum(a),sum(b) from #tmp

drop table #tmp

另一是:
select sum(X.a) ,sum(X.b),sum(X.c)
from
(
select a,b,c from 表A
unino all
select a,0 as b,c from 表B
) X

在保证表A和表B的字段数量、类型都一致的情况下才可以使用union

select 名称,sum(数量) from
(select 名称,数量 from table_A
union
select 名称,数量 from table_B) table
group by 名称

select 名称 ,sum(数量) as 分类汇总 from
(Select * From A union Select * From B) T
group by 名称

select 名称,数量 From (Select * From A union Select * From B) T