내 응용 프로그램에 사용자가 데이터베이스에 레코드를 입력했습니다. 레코드에는 자동 증가 ID, 날짜 (mm-dd-yyyy 형식의 텍스트), 수량 (int) 및 기타 몇 가지 필드가 포함됩니다.커서에 액세스 할 때의 예외
저는 매달 모든 달과 합계 금액을 매달려고합니다. 그래서 내가 좋아하는 내 응용 프로그램에 표시 할 수 있음 : 2010년 12월 - 90qty 월 2010 -
내가 그렇게이 쿼리를 사용하고 45qty ... :
return mDb.query("record", new String[] {KEY_ROWID, "strftime('%m-%Y', date)", "sum(quantity)"}, null, null, "strftime('%m-%Y', date)", null, null);
나는 쿼리가 좋은 생각 커서에 액세스 할 때 예외가 발생합니다. 그것은 '날짜'가 열이 아니라고 말합니다. [date]의 이름을 [dateA]로 바꾸면 'dateA'가 열이 아니므로 문제가 좁혀집니다.
Cursor c = mDbHelper.fetchReport();
String[] from = new String[] { "date", "quantity" };
int[] to = new int[] { R.id.text1, R.id.text2 };
setListAdapter(new SimpleCursorAdapter(this, R.layout.basicrow, c, from, to) {
}
아이디어가 있으십니까?
업데이트 : select strftime ('% m- % Y', 날짜), 레코드 합계 (수량)을 수행 할 때; adb 쉘에서, ": 94"를 반환합니다. 수량은 거기에 있습니다 (그러나 모든 날짜에 대해). 그러나 날짜는 아닙니다.
입력 할 때 strftime (date) from record를 선택하면 모든 날짜 (이 테스트 케이스에서는 3)가 반환됩니다. 입력 할 때 레코드에서 strftime ('% m- % Y', date)을 선택하면 3 개의 빈 행이 반환됩니다.
SqliteDatabaseHelper 코드를 게시 할 수 있습니까? – James
이것을 알아 냈습니까? 나는 지금이 같은 문제를 겪고있다. – Kalina