2015-05-15 2 views
-2

Я пробовал использовать следующий код, но не отображал значения. Я заметил, что это из-за столбца Varchar для TX_AMOUNT. Как изменить код для суммирования столбца varchar?Как суммировать столб varchar?

String[] columns = {VivzHelper.UID, helper.TX_NAME, 
"SUM("+helper.TX_AMOUNT+") AS "+helper.TX_AMOUNT, helper.TX_DATE }; 

Cursor c = db.query(VivzHelper.TX_TABLE, columns, helper.TX_ID + "='" + name 
+ "' AND " + helper.TX_DATE + " BETWEEN '" + datefrom.from_date + "' AND '" 
+ dateto.to_date + " ' ",null,helper.TX_NAME, null, null); 
+1

Что вы подразумеваете под ** суммированием текста ** на другой? Вы хотите «конкатенировать» их? –

+0

Столбец varchar TX_AMOUNT содержит числа с десятичными знаками. Я хочу это выразить. – user3144078

+0

Как выглядят ваши данные? – laalto

ответ

0

Использование CAST

SELECT CAST('1.11' as decimal)

Источник: http://www.sqlite.org/lang_expr.html#castexpr

Пример:

CREATE TABLE Test 
    (`id` int, `productName` varchar(7), `amount` varchar(10)) 
; 

INSERT INTO Test 
    (`id`, `productName`, `amount`) 
VALUES 
    (1, 'Foo', '1.1'), 
    (2, 'Bar', '1.1'), 
    (3, 'Baz', '1.1') 
; 

SELECT 
    SUM(CAST(amount as decimal)) 
FROM 
    Test 
; 

В вашем случае:

String[] columns = {VivzHelper.UID, helper.TX_NAME, 
    "SUM(CAST("+helper.TX_AMOUNT+" as decimal)) AS "+helper.TX_AMOUNT, helper.TX_DATE }; 
+0

Я использую строковый массив с запросом курсора. Поэтому, соответственно, мне нужна помощь в этом углу. – user3144078

+0

@ user3144078 попробуйте использовать последний блок кода на моем последнем редактировании – tbraun

+0

У меня есть 4 строки с 2 diff TX_NAME. Данные по настоящему Договору: Строка 1: Имя = Кришна TX_AMOUNT является 555548350000,15 Row 2: Name = Krishna TX_AMOUNT 1,14 Row 3: Name = Tea TX_AMOUNT в 52,0 Row 4: Name = Tea TX_AMOUNT является 214,0 – user3144078

Смежные вопросы