计算行数并与其他表进行比较

时间:2013-12-04 17:24:15

标签: sql sql-server-2008-r2 ssis

我有两张桌子

表A:

  ID|Name |TotalAmount  
1234|Test1|120.00  
1235|Test2|1456.68

表B:

  ID|Name  |LineAmount  
1234|Test1A|80.00  
1234|Test1B|40.00  
1235|Test2A|1000.08  
1235|Test2B|0.60  
1235|Test2C|56.00  
1235|Test2D|400.00  

我想计算具有相同ID的表B 行的总和,并将比较表A ,我该如何处理此问题?

修改

我想要的是什么:

  1. 从两个表中获取数据
  2. 检查ID上的 SUM([表B] .LineAmount)是否等于 [表A] .TotalAmount
  3. 如果没有添加另一个带有差异的 TABLE B
  4. 输出平面文件
  5. 中的所有内容

    我不知道的是,如果总和金额等于总金额,我该如何比较。如果是这种情况,则不会做额外的事情。

1 个答案:

答案 0 :(得分:0)

我不确定“比较”是什么意思。以下产生了差异:

select coalesce(a.id, b.id) as id, a.TotalAmount, bsum.TotalLineAmount,
       (a.TotalAmount - bsum.TotalLineAmount) as difference
from TableA a full outer join
     (select b.id, sum(LineAmount) as TotalLineAmount
      from TableB b
      group by b.id
     ) bsum
     on a.id = bsum.id;

如果某些ID在一个表中但不在另一个表中,则使用full outer join