0

私はJavaプログラミングが初めてなので、助けが必要です...私はこの蓄積的なことをしています...

ちょうどこのような..

Score             Accumulated
10                10
40                50
60                110
and so on.......

私はここに私のコードを持っています...

public int accumulateScores(){

        db = this.getReadableDatabase();

        String query = "SELECT score, (SELECT sum(score) FROM "
                + TABLE_NAME+ ")" + " AS accumulated" + " FROM " + TABLE_NAME;
        Cursor cursor = db.rawQuery(query, null);

        if (cursor != null)
            cursor.moveToFirst();
            Score score = new Score(Integer.parseInt(cursor.getString(0)), cursor.getInt(1));




    }

列スコアの合計を返すにはどうすればよいですか..事前に感謝します..どんな助けでも深く感謝します..

4

2 に答える 2

1

これは、必要なことをかなり簡単な方法で行う必要があります。現在の行 ID よりも小さい行 ID を持つすべての行を合計するだけです。テーブルに自動インクリメント キーがある場合は、代わりにそのキーを使用して、スコアのより予測可能な順序を取得することができます。

SELECT Score, 
   (SELECT SUM(Score) 
    FROM table_name a 
    WHERE rowid <= table_name.rowid
   ) Accumulated
FROM table_name
ORDER BY rowid

でテストする SQLfiddle

EDIT:エラーサンプルに基づいて;

SELECT score, 
   (SELECT SUM(score) 
    FROM score_table a
    WHERE a.id <= score_table.id
   ) Accumulated
FROM score_table
ORDER BY id

別の SQLfiddle

于 2013-07-21T18:33:17.593 に答える
0

Google をもっと使って、このコードを入力してください

SELECT SCORE, (SELECT SUM(SCORE) FROM table_name PATING WHERE rowid <=table_name.rowid )Accumulated FROM table_name ORDER BY rowid

于 2013-07-21T18:35:30.963 に答える