traffic_wood_info.operation_no=w.operation_no  关系是否1:1(如果不是,数据肯定会出错)
join 换成left join 试试

解决方案 »

  1.   

    如果你的W表是主表:select w.start_3 as perpare_field, 
    w.fact_money+isnull(sum(t.amount),0) as amount
    from wood_info w  join traffic_wood_info  T on T.operation_no=w.operation_no  
    where (w.oper_date>='2004-9-29 0:00:01') and (w.oper_date<='2004-9-29 23:59:59') 
    group by w.start_3,w.fact_money  
    order by w.amount desc否则的话,反过来sum(w表的数量)+t.amount
      

  2.   

    select w.start_3 as perpare_field, 
    sum(w.fact_money) as fact_money, 
    sum(traffic_wood_info.amount) as amount1,
    from wood_info w  LEFT OUTER JOIN traffic_wood_info  on traffic_wood_info.operation_no=w.operation_no  
    where (w.oper_date>='2004-9-29 0:00:01') and (w.oper_date<='2004-9-29 23:59:59') 
    group by w.start_3  order by w.amount1 desc
      

  3.   

    select w.start_3 as perpare_field, 
    sum(w.fact_money) as fact_money,
    sum(traffic_wood_info.amount) as amount1
    from(
    select operation_no,start_3,sum(fact_money) as fact_money
    from wood_info
    where oper_date>='2004-9-29 0:00:01' and oper_date<='2004-9-29 23:59:59'
    group by operation_no,start_3
    )w join traffic_wood_info on traffic_wood_info.operation_no=w.operation_no
    group by w.start_3  order by w.amount1 desc
      

  4.   

    operation_no 应该是wood_info的主键才可以做
    select a.start_3,sum(a.fact_money) as fact_money,sum(b.amount) as amount1
    from (
    select operation_no,start_3,fact_money from wood_info 
    where (w.oper_date>='2004-9-29 0:00:01') and (w.oper_date<='2004-9-29 23:59:59') ) a
    left join (
    select  operation_no,sum(amount) as amount1 from traffic_wood_info group by operation_no) b
    on a.operation_no=b.operation_no
      

  5.   

    忘了说一点第一个表wood_info 是主表,traffic_wood_info是从表,主表里的一个业务号(operation)对应从表里的多条业务
      

  6.   

    昨天未能结贴,不好意思,今早特来结贴,感谢各位大侠热心帮助,不过用wutao411(了缘) 的方法解决了问题,我把分多给他一点大家没意见吧!:)