我有两张表,第一张表TABLE1和第二张表TABLE2有一个ID关联
我统计TABLE1中的费用同时统计出TABLE2中的想关费用
表中内容如下:
TABLE1
tdID     客户名称   费用字段   
 1          AA         200table2
id    tdid   字段1(MONEY)
1       1      50
2       1      50
我需要统计出第一张表中的费用减去第二张表中TDID关联的费用总和。我写的格式如下
select 客户名称,sum(费用字段) AS table1费用,sum(字段1) as table2费用 from table1 as a left join table2 on a.tdid=b.tdid  group by 客户名称但是,我发现统计出来的table1费用不是200,而是400,因为关联在table2表中有两条记录。请问正确的统计应该怎么写???我希望最后得到的结果是
客户名称    table1费用    table2费用
AA              200           100

解决方案 »

  1.   

    select a.tdid,a.客户名称,a.费用字段,sum(b.字段1) as table2费用,a.费用字段-sum(b.字段1) as 差额
    from table1 a left join table2 b on a.tdid=b.tdid  group by a.tdid,a.客户名称,a.费用字段
      

  2.   

    create table TABLE1(tdID int,客户名称 varchar(50),费用字段 numeric(18,2))
    insert into TABLE1 select 1,'AA',200create table TABLE2(id int, tdid int, 字段1 money)
    insert into TABLE2 select 1,1,50 union all
    select 2,1,50select a.客户名称,a.费用字段 as TABLE1费用,(a.费用字段-sum(b.字段1)) as TABLE2费用 
           from TABLE1 a inner join TABLE2 b on a.tdid = b.tdid
           group by a.客户名称,a.费用字段
      

  3.   

    or:
    select 客户名称,
           费用字段 as table1,
           (select  sum(MONEY) from table2 where tdid = table1.tdid) as table2
    from    table