表a和b,结构一样,a内有列“名称”和“数量1”,b内有列“名称”和“数量2”,求将表a和表b组成表c(表c中有列“名称”、“数量1”和数量2),结果如下:
表a
名称    数量1
篮球      2
足球      3
羽毛球    1表b
名称    数量2
篮球      4
足球      4
乒乓球    2将以上两个表组合后为
表c
名称    数量1     数量2
篮球     2          4
足球     3          4
羽毛球   1          0
乒乓球   0          2请问实现以上组合功能的sql语句如何写?

解决方案 »

  1.   


    --> 测试数据:[表a]
    if object_id('[表a]') is not null drop table [表a]
    create table [表a]([名称] varchar(6),[数量1] int)
    insert [表a]
    select '篮球',2 union all
    select '足球',3 union all
    select '羽毛球',1
    --> 测试数据:[表b]
    if object_id('[表b]') is not null drop table [表b]
    create table [表b]([名称] varchar(6),[数量2] int)
    insert [表b]
    select '篮球',4 union all
    select '足球',4 union all
    select '乒乓球',2select isnull(a.名称,b.名称) as 名称,
    isnull(a.数量1,0) 数量1,isnull(b.数量2,0) as 数量2 from [表a] a 
    full join [表b] b on a.名称=b.名称
    /*
    名称 数量1 数量2
    篮球 2 4
    足球 3 4
    羽毛球 1 0
    乒乓球 0 2
    */