SELECT x.售货员号, x.销售总额 - y.退货总额
FROM (SELECT 售货员号, SUM(金额) AS 销售总额 
      FROM A表 
      WHERE 时间 BETWEEN @begintime AND @endtime
      GROUP BY 售货员号) x 
INNER JOIN 
     (SELECT 售货员号, SUM(金额) AS 退货总额 
      FROM B表 
      WHERE 时间 BETWEEN @begintime AND @endtime
      GROUP BY 售货员号) y
ON x.售货员号 = y.售货员号

解决方案 »

  1.   

    select a.售货员,sum(isnull(a.销售总额,0))-sum(isnull(b.退货总额,0))
    from A表 a 
    left join B表 b on a.售货员=b.售货员 
    where a.时间... and b.时间.. 
    group by a.售货员
      

  2.   

    我觉得安全一点应将sdhdy(大江东去...) 的语句再改一下,select 售货员,sum(net) 销售金额
    from 
    (select 售货员,sum(销售总额) net from a表
     union all
     select 售货员,-sum(退货总额) net from b表
    )k
    group by 售货员
      

  3.   

    select a.售货员,sum(isnull(a.销售总额,0))-sum(isnull(b.退货总额,0))
    from A表 a 
    left join B表 b on a.售货员=b.售货员 
    where a.时间 between 开始时间 and 结束时间 
      and b.时间 between 开始时间 and 结束时间  
    group by a.售货员
      

  4.   

    SQL语句楼上都说完了,我只能向楼主表示同情了!