2013-07-19 93 views
0

蔭試圖找到一列中的平均某些值在我的SQLite數據庫。此列有一些空值和一些非空值。我需要根據最後1個,5個或10個非空值計算平均值。但是,當我嘗試通過我的查詢獲取數據時,我總是將光標作爲空值。 請幫忙。 繼承人我的代碼獲取里程的最後一個非空值。SQLite的光標停留空

public void calculateAvgMileage(Prediction predictMileage) 
{ 

    if(predictMileage.isChkLastMileage1()==true) 
     { 
String [] columns = new String[]{KEY_ROW_ID, KEY_KM, KEY_FUEL_QTY, KEY_FUEL_PRICE, KEY_TOTAL_COST, KEY_MILEAGE, KEY_DATE,KEY_TANK_FULL}; 
      predictionCursor = ourDatabase.rawQuery("SELECT * FROM fuel_table ORDER BY _id DESC LIMIT 1", null); 

      if(predictionCursor!=null && predictionCursor.getColumnCount()>0) 
      { 
       predictionCursor.moveToLast(); 
       String predictionMileage= predictionCursor.getString(5); 
       if(predictionMileage==null) 
       { 
       predictionCursor.moveToPrevious(); 
       } 
       else 
       { 
       avgMileagePrediction.setpredictionMileage(Double.valueOf(predictionMileage)); 
       } 
      } 

回答

0

您無法讀取的列數,您迫使光標實際上以moveToFirst來電或類似功能的讀取數據之前。

+0

嗯,我也做了同樣的事情在其他功能上和他們的工作。 HOever在這裏我的問題是遊標沒有從查詢本身獲取值。下一步是永遠不會到達的。 – user2574903

+0

你不明白我寫的是什麼,是嗎?在getColumnCount檢查前插入一個對moveToFirst的調用。 –

+0

沒有!!仍然沒有工作。我在這裏要做的是從我的數據庫中獲取最後的里程數,並找出旅行某些公里所需的燃料數量。如在由calulating fuelQty =公里/里程(從數據庫獲得),但我正在「無窮大」作爲結果爲燃料數量。 – user2574903