首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

两个表相加,该怎么处理

2012-03-09 
两个表相加,急!!!请问如何做如下的查询表a表baaa10ccc15bbb20ddd30ccc20合并后出现如下的结果aaa100bbb200

两个表相加,急!!!
请问如何做如下的查询
表a                                             表b
aaa         10                                 ccc         15
bbb         20                                 ddd         30
ccc         20

合并后出现如下的结果
aaa         10         0
bbb         20         0
ccc         20         15
ddd         0           30

[解决办法]
declare @t1 table(a char(10),b int)
insert into @t1 select 'aaa ',10 union all
select 'bbb ',20 union all
select 'ccc ',20
declare @t2 table(a char(10),b int)
insert into @t2 select 'ccc ',15 union all
select 'ddd ',30
select isnull(a.a,b.a),isnull(a.b,0),isnull(b.b,0) from @t1 a full join @t2 b on a.a=b.a
order by isnull(a.a,b.a)
resu---------- ----------- -----------
aaa 10 0
bbb 20 0
ccc 20 15
ddd 0 30

(所影响的行数为 4 行)lt:

[解决办法]
create table T1(col1 varchar(10), col2 int)
insert T1 select 'aaa ', 10
insert T1 select 'bbb ', 20
insert T1 select 'ccc ', 20

create table T2(col1 varchar(10), col2 int)
insert T2 select 'ccc ', 15
insert T2 select 'ddd ', 30

select col1, col2=sum(col2), col3=sum(col3)
from
(
select col1, col2, col3=0 from T1
union all
select col1, col2=0, col3=col2 from T2
)tmp
group by col1

---result
col1 col2 col3
---------- ----------- -----------
aaa 10 0
bbb 20 0
ccc 20 15
ddd 0 30

(4 row(s) affected)

热点排行