现有三张表A,B,C
表A有     工号,绩效,考核绩效            这三列  有50条记录
表B有     工号,绩效,考核绩效,余额      这四列  有30条记录
表C有     工号,绩效,考核绩效,余额      这四列  有70条记录现在要合并三表的数据输出查询结果
既把表A.工号=B.工号=C.工号  时,把对应的绩效相加,对应的考核绩效相加,余额相加。 
问题是 A里面的所有工号,有一些的在B里面有,有一些在B里面没有。B表也是有的工号在A里有,有的没有请问该怎么写sql语句合并以工号为单位,把后面的各列对应值相加输出成一张表

解决方案 »

  1.   

    楼主问题描述不清楚啊,既然工号一个有一个没有,那就不满足A.工号=B.工号=C.工号 了,那就没必要把它们加起来了,不是吗?
      

  2.   

    SELECT 工号,sum(绩效) ,sum(考核绩效) ,sum(余额)
      FROM (SELECT 工号,绩效,考核绩效, 0 余额
              FROM A
            UNION ALL
            SELECT 工号,绩效,考核绩效,余额
              FROM B
            UNION ALL
            SELECT 工号,绩效,考核绩效,余额 FROM c)
     GROUP BY 工号;