select a.corp_id,a.corp_name,(select sum(b.sale_money) from x_sale sale_corp=a.corp_id)as salemoney,(select sum(b.saleout_money) from x_saleout saleout_corp=a.corp_id)as saleoutmoney,这里怎么写才可以salemoney和saleoutmoney 相减 from x_kcorp a

解决方案 »

  1.   

    select 
      a.corp_id,
      a.corp_name,
      b.salemoney,
      c.saleoutmoney,
      b.salemoney-c.saleoutmoney
    from x_kcorp a
    join (select sale_corp,sum(sale_money) as salemoney from x_sale group by sale_corp) b
      on a.corp_id=b.sale_corp
    join (select saleout_corp,sum(saleout_money) as saleoutmoney from x_saleout group by saleout_corp) c
      on a.a.corp_id=c.saleout_corp
      

  2.   

    use CSDN
    go--#1.直接减就可以
    select 
    a.corp_id,
    a.corp_name,
    (select sum(b.sale_money) from x_sale where sale_corp=a.corp_id) as salemoney,
    (select sum(b.saleout_money) from x_saleout where saleout_corp=a.corp_id) as saleoutmoney,
    diff = (select sum(b.sale_money) from x_sale where sale_corp=a.corp_id) - (select sum(b.saleout_money) from x_saleout where saleout_corp=a.corp_id)
    from x_kcorp a--#2.或者用子查询
    select 
    *,
    diff = salemoney - saleoutmoney
    from
    (
    select 
    a.corp_id,
    a.corp_name,
    (select sum(b.sale_money) from x_sale where sale_corp=a.corp_id) as salemoney,
    (select sum(b.saleout_money) from x_saleout where saleout_corp=a.corp_id) as saleoutmoney
    from x_kcorp a
    ) T
      

  3.   

    谢谢大家,如果还要用diff = salemoney - saleoutmoney的值当子查询,如
    gmoney=diff*100,应该如何写
      

  4.   

    参考1楼,直接(b.salemoney-c.saleoutmoney)*100
      

  5.   

    如果去掉diff = salemoney - saleoutmoney 为0的记录
      

  6.   

    select 
      a.corp_id,
      a.corp_name,
      b.salemoney,
      c.saleoutmoney,
      b.salemoney-c.saleoutmoney as diff
    from x_kcorp a
    join (select sale_corp,sum(sale_money) as salemoney from x_sale group by sale_corp) b
      on a.corp_id=b.sale_corp
    join (select saleout_corp,sum(saleout_money) as saleoutmoney from x_saleout group by saleout_corp) c
      on a.a.corp_id=c.saleout_corp
    where b.salemoney-c.saleoutmoney!=0
      

  7.   

    select 
        *,
        diff = salemoney - saleoutmoney
    from
    (
        select 
            a.corp_id,
            a.corp_name,
            (select sum(b.sale_money) from x_sale where sale_corp=a.corp_id) as salemoney,
            (select sum(b.saleout_money) from x_saleout where saleout_corp=a.corp_id) as saleoutmoney
        from x_kcorp a
    ) T
    如何去掉realmoney为零的记录
      

  8.   

    本帖最后由 josy 于 2012-06-14 12:27:48 编辑