我現在有一几個多表關聯的數據庫﹐在數據處理過程中出現聯異常的情況﹐具體情況如下﹕
     我現在對入倉記錄中的'收入'字段進行求和運算﹐但是單獨有几類貨物的收入統計出現聯求和運算﹐而是進行后一條記錄對 前一條記錄的收入的覆蓋﹔關鍵是﹕其他貨物的收入統計又是正常是正確的。我保証這些貨物用的是同樣的代碼﹐我用的是 ACCESS數據庫﹐請問這是什么原因﹖是數據庫原因嗎﹖..... 急   謝謝

解决方案 »

  1.   

    代碼你會看到頭痛的﹕這是我一個原來的同事寫的﹔統計葉面的代碼如下。其中收入字段值在表 YmStock 表中...Add('SELECT val(iif (isnullSpec),'''',spec)),   Goods.GoodsNo,Goods.GoodsName,Goods.Unit,');
    Add('Goods.Spec,Goods.mCurr,YmStock.*,');
    Add('val(format((YmStock.PrevNumber+YmStock.CurInNumber-YmStock.CurFcNumber+YmStock.CurPdNumber),"##0.#,###0.000")) as jc,');
    Add('val(format(((YmStock.PrevNumber+CurInNumber+CurPdNumber-CurFcNumber)*YmStock.CurmuPrice*YmStock.muChange),"##0.#,###0.000")) as zj,'); //改因為當前的成本是本月總成本
     Add('val(format((YmStock.PrevNumber*YmStock.muPrice*YmStock.muChange),"##0.0")) as syzj');
             Add('FROM Goods INNER JOIN YmStock');
             Add('ON Goods.GoodsCode =YmStock.GoodsCode');
             Add('where Goods.mCode=:mmCode');
             Add('and (YmStock.PrevNumber<>0 or YmStock.CurInNumber<>0)')
      

  2.   

    SELECT val(iif (isnullSpec),'''',spec)),Goods.GoodsNo,Goods.GoodsName,
    Goods.Unit,Goods.Spec,Goods.mCurr,YmStock.*,
    val(format((YmStock.PrevNumber+YmStock.CurInNumber-YmStock.CurFcNumber+YmStock.CurPdNumber),"##0.#,###0.000")) as jc,val(format(((YmStock.PrevNumber+CurInNumber+CurPdNumber-CurFcNumber)*YmStock.CurmuPrice*YmStock.muChange),"##0.#,###0.000")) as zj,val(format((YmStock.PrevNumber*YmStock.muPrice*YmStock.muChange),"##0.0")) as syzjFROM Goods INNER JOIN YmStock ON Goods.GoodsCode =YmStock.GoodsCode
    where Goods.mCode=:mmCode and (YmStock.PrevNumber<>0 or YmStock.CurInNumber<>0)问你一下:用的是SQL Server 吧?在处理Field为Null值的比较和运算时有什么规则?
      

  3.   

    不是﹐用的是ACCESS(我最不喜歡的數據庫)﹐用null值的方式只是取值問題﹐因為SPEC是貨物規格﹐比如規格為﹕  20*45*20   那么在val(iif (isnull Spec,'''',spec))之后返回值為﹕20
    ﹔在中間的NULL判斷只是當SPEC為空時﹐賦''值。否則就賦原值。