0

sqlite データベースの列で特定の値の平均を見つけようとしています。この列には、null 値と null 以外の値があります。最後の 1、5、または 10 個の非 null 値に基づいて平均を計算する必要があります。しかし、クエリを介してデータを取得しようとすると、常にカーソルが null になります。親切に助けてください。走行距離の null 以外の最後の値を取得するためのコードを次に示します。

 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));
                }
            }
4

1 に答える 1

0

moveToFirstまたは同様の関数を呼び出してカーソルに実際にデータを読み取らせる前に、列の数を読み取ることはできません。

于 2013-07-19T16:42:07.470 に答える