SUMを含むSQLクエリを使用して問題が発生しました。リストビューに日付とグラムの量を表示しています。 SUMがなければ、日付とグラムの罰金が表示されますが、1つの日付に対して複数のエントリがある場合はグラムの量が加算されません。 SQLクエリは、私がsqliteデータベースブラウザでテストするときに機能します。私はエラーのいずれかが表示さだと思いSUMを使用した場合のAndroid sqlエラー
mySQLiteAdapter = new CalorieCounterDbAdapter(this);
mySQLiteAdapter.open();
Cursor cursor = mySQLiteAdapter.getOverviewDate();
startManagingCursor(cursor);
final String[] columns = { CalorieCounterDbAdapter.C_DATE, CalorieCounterDbAdapter.C_GRAM};
int[] to = new int[]{R.id.date, R.id.gram};
SimpleCursorAdapter cursorAdapter =
new SimpleCursorAdapter(this, R.layout.row, cursor, columns, to);
listContent.setAdapter(cursorAdapter);
mySQLiteAdapter.close();
:
//attempt 2:
public Cursor getOverviewDate(){
String test = "SELECT _id, date, SUM(gram) FROM nutvalues GROUP BY date;";
Cursor cursor = db.rawQuery(test, null);
return cursor;
}
クエリ結果を出力取得する方法:
//attempt 1:
public Cursor getOverviewDate(){
String[] columns = new String[]{ C_ID, C_DATE, "sum(" + C_GRAM + ")" };
Cursor cursor = db.query(TABLE, columns,
null, null, C_DATE, null, null);
return cursor;
}
アイブ氏はまた、rawqueryで試してみました。以下は、このための私のコードのいくつかはありますlogcatでは、ソリューションの鍵は
01-07 14:31:27.686: E/AndroidRuntime(10497): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-07 14:31:27.686: E/AndroidRuntime(10497): at dalvik.system.NativeStart.main(Native Method)
01-07 14:31:27.686: E/AndroidRuntime(10497): Caused by: java.lang.IllegalArgumentException: column 'gram' does not exist
01-07 14:31:27.686: E/AndroidRuntime(10497): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314)
01-07 14:31:27.686: E/AndroidRuntime(10497): at android.widget.SimpleCursorAdapter.findColumns(SimpleCursorAdapter.java:312)
01-07 14:31:27.686: E/AndroidRuntime(10497): at android.widget.SimpleCursorAdapter.<init>(SimpleCursorAdapter.java:87)
01-07 14:31:27.686: E/AndroidRuntime(10497): at com.korsakopf.caloriecounter.CalorieCounterOverviewActivity.onCreate(CalorieCounterOverviewActivity.java:39)
01-07 14:31:27.686: E/AndroidRuntime(10497): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-07 14:31:27.686: E/AndroidRuntime(10497): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
です
私は今3日間ソリューションを探しています。私はプログラミング/アンドロイドの絶対初心者ですので、それはちょうどnoobyのミスかもしれませんが、私はそれを見つけることができないようです。
最初に、「グラム」列が存在しないことを示します。 'CalorieCounterDbAdapter.C_GRAM ==" gram "'ですか? – tidbeck
テーブルに「グラム」列がありますか? – kosa
私はそれを解決することができたように見えます。私は誰かが答えを投稿した後にそれを見つけましたが、何らかの理由で彼が彼の答えを取り除いたので、私の返信のコメントも削除されました。 は、私は、クエリに変更する必要が判明:date' BY nutvaluesグループから、 は '_id、日付、グラムとして合計(グラム)を選択するので、私は持っていなかったので、それがあった「グラムとして」の部分を持っていますその中に。 すべての返信のためのThx! – user1135968