请教一下:
我有三个数据库A,B,C,在同一个服务器上,每个数据库都有一个相同的表名rdrecords,字段和数据如下:
a.dbo.rdrecords:日期   金额
2012-8-12    400
2012-8-13    330
2012-9-10    322
2012-9-11    321b.dbo.rdrecords:日期   金额
2012-8-15    401
2012-8-19    334
2012-9-14    326
2012-9-18    328c.dbo.rdrecords:日期   金额
2012-8-11    4012
2012-8-14   3348
2012-9-13    321
2012-9-19   322现在想把三个数据库的金额汇总加起来,显示在一张表上:我是这样写的,不知错在哪里?select   月份  ,a1.sum(金额)+select  a2.sum(金额) from b.dbo.rdrecords b2 group by a2 + select a3.sum(金额) from c.dbo.rdrecords c3 group by c3   from a.dbo.rdrecords  a1 group by a1.日期

解决方案 »

  1.   

    你这明显有问题哦,干嘛要“+”,使用union all或者关联来实现就可以拉。
      

  2.   

    那既用union all吧。反正+是不行的。
      

  3.   


    select 日期,isnull(a.sum(金额),0)+isnull(b.sum(金额),0)+isnull(c.sum(金额),0)
    from a.dbo.rdrecords a left outer join b.dbo.rdrecords b on a.日期 = b.日期
                           left outer join c.dbo.rdrecords c on a.日期 = b.日期
    group by 日期
      

  4.   

    union all 不需要必然联系, join在需要联系 ,这个也反了
    这个结果得什么??随便找个类似的字段关联?
      

  5.   

    建议用:Union All
    left outer join也可以,但在超过两个表(3各表或者更多表)关联时要谨慎使用。
    语句:
    select sum(金额),日期 from (
    select 日期,金额 from a.dbo.rdrecords
    union all
    select 日期,金额 from b.dbo.rdrecords
    union all
    select 日期,金额 from c.dbo.rdrecords
    ) a group by 日期