有表 ck_Material_Stock ,ck_Material_In,ck_Material_out,ck_SaveRemnant 表 ck_Material_In 有字段amount_1 (int)表 ck_Material_out 有字段amount_2 (int) 表 ck_SaveRemnant  有字段amount_4 (Int) 单 表 ck_SaveRemnant 里面的日期字段日期为1月份是 查出来 编号为  a 的东西 数量为 120 执行语句为 Select sum(amount_4) from where 编号=''and 日期='2012-01' 查出来为120当我用下面语句时 查出来竟然是480 请问这个是哪里出现的问题 求高手解答Select Material_Num,spec,StoreName, sum(amount_1),sum(amount_2) ,sum(amount_4) from ck_Material_Stock 
left join ck_SaveRemnant on (ck_SaveRemnant.Material_Nums=Material_Num and ck_SaveRemnant.YearMonth='2012-01')
 left join ck_Material_in on(ck_Material_in.MaterialIN=Material_Num and ck_Material_in.YearMonth='2012-01') 
left join ck_Material_Out on(ck_Material_Out.Material_No=Material_Num and ck_Material_Out.YearMonth='2012-01')
group by Material_Num,Spec,StoreName order by Material_Num
结构amount_4 为 480 ?

解决方案 »

  1.   

    你多半是由于各表之间的连接造成重复计算了amount_4.你先将sum去掉,看看是不是出现了重复数据?Select Material_Num,spec,StoreName, amount_1,amount_2 ,amount_4 from ck_Material_Stock  
    left join ck_SaveRemnant on (ck_SaveRemnant.Material_Nums=Material_Num and ck_SaveRemnant.YearMonth='2012-01')
    left join ck_Material_in on (ck_Material_in.MaterialIN=Material_Num and ck_Material_in.YearMonth='2012-01')  
    left join ck_Material_Out on (ck_Material_Out.Material_No=Material_Num and ck_Material_Out.YearMonth='2012-01')