СУММА очереди столбца SQLite - Android - PullRequest
0 голосов
/ 26 февраля 2012

У меня есть список, заполненный из базы данных SQLite. У меня есть несколько элементов, которые я успешно заполнил в просмотр списка, но у меня возникли проблемы с последней вещью.

Я пытаюсь поставить в очередь общую сумму столбца KEY_CONTENT6, который является строковым типом, однако он содержит только цифры. Я хотел бы сохранить это как строку, поэтому для добавления я использую Double.valueOf(). Проблема в том, что этот код принудительно закрывается в очереди, и я не могу понять, что не так:

 public Cursor queueAll(){

  String[] columns = 
     new String[]{KEY_ID, "sum("+ Double.valueOf(KEY_CONTENT6) +")",
                  KEY_CONTENT9, KEY_CONTENT10 };

  Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns,

          null , null, KEY_CONTENT10, null, KEY_CONTENT9+ " DESC");


  return cursor;

 }

Ответы [ 3 ]

3 голосов
/ 26 февраля 2012

просто используйте СУММУ, больше ничего не нужно использовать.

String[] columns = 
     new String[]{KEY_ID, "sum(KEY_CONTENT6)",
                  KEY_CONTENT9, KEY_CONTENT10 };

Это действительно для SQLite. Потому что, независимо от того, какой тип данных вы устанавливаете в SQLite, он сохраняет значения в виде строки. Таким образом, преобразование типов несколько встроено в SQLite.

1 голос
/ 26 февраля 2012

Вы не можете использовать Java в операторе SQL, либо придерживаться режима sql, либо перебирать курсор и использовать Java для выполнения вычислений.

Вы можете найти все, что нужно знать о SQL, здесь http://www.sqlite.org/docs.html

0 голосов
/ 26 февраля 2012

SQLite в основном не содержит типов, поэтому вы можете использовать SUM в своем столбце, даже если это строка. Однако, если это должен быть числовой столбец, почему бы не дать ему тип числа ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...