三张表
ta
id  col1 col2 col3
1   0001  2    3
2   0002  1    2
3   0001  1    1
4   0003  2    2
5   0002  1    1
6   0001  3    1
统计结果 0001  6  5
         0002  2  3
         0003  2  2
tb
id  col1 col4 col5
1   0001   1    2
2   0001   2    3
3   0001   1    1
4   0003   1    3
统计结果 0001  4  6
         0003  1  3
tc
id col1 col2 col3 col4 col5
表ta和表tb的col列一致,表tb的col1含有表ta的col1中的部分值。tc为空表col2,col3,col4,col5默认值为0
想得到结果
tc
id col1 col2 col3 col4 col5
1  0001 6      5    4    6
2  0002 2      3    0    0
3  0003 2      2    1    3
刚刚接触数据库,请各位帮助,谢了!

解决方案 »

  1.   

    将多个表的数据按ID合并起来2个表,
    表A
       a1          a2
       1            9
       2           10
       3           67
       4           33
    表B
       b1          b2
        2           31
        4           99
    想实现这样
       a1         a2        b2
        1         9          NULL(或0或不体现任何数)
        2         10         31
        3         67         NULL(或0或不体现任何数)
        4         33         99
    谢谢各位指导~
    CREATE TABLE #a ([a1] [char] (10),[a2] [int])
    CREATE TABLE #b ([b1] [char] (10),[b2] [int])insert into #a(a1,a2) values('1',9)  
    insert into #a(a1,a2) values('2',10)  
    insert into #a(a1,a2) values('3',67)  
    insert into #a(a1,a2) values('4',33)  insert into #b(b1,b2) values('2',31)  
    insert into #b(b1,b2) values('4',99)  --显示NULL
    --select isnull(#a.a1,#b.b1) a1,#a.a2 a2,#b.b2 b2
    --from #a full join #b on #a.a1=#b.b1--显示0
    select #A.a1, #A.a2, isnull(#B.b2, 0)
    from #A left join #B on #A.a1 = #B.b1drop table #a
    drop table #b
      

  2.   

    INSERT tc(col1, col2, col3, col4, col5)
    SELECT col1, col2 = SUM(col2), col3 = SUM(col3), col4 = SUM(col4), col5 = SUM(col5)
    FROM(
    SELECT 
        col1, col2, col3, col4 = 0, col5 = 0
    FROM ta
    UNION ALL
    SELECT 
        col1, col2 = 0, col3 = 0, col4, col5
    FROM tb
    )A
    GROUP BY col2
      

  3.   

    未测试select a.col1 , isnull(a.col2,0) , isnull(a.col3,0) , isnull(b.col4,0) , isnull(b.col5,0) from 
    (select col1 , sum(col2) as col2 , sum(col3) as col3 from ta group by col1) a
    left jion 
    (select col1 , sum(col4) as col4 , sum(col5) as col5 from tb group by col1) b
    on a.col1 = b.col1
      

  4.   

    问题解决了,谢谢dawugui和zjcxc!