Страница 1 из 2
Сумма значений столбца
Добавлено: 09 авг 2013, 18:50
antonbright
Как просуммировать все значения столбца в таблице. Есть загнать весь столб в массив а потом посчитаь его сумму, но может это можно осуществить как-то проще?
Re: Сумма значений столбца
Добавлено: 09 авг 2013, 18:53
Foenix
select sum(STOLBIK) from table TABLITSA
Re: Сумма значений столбца
Добавлено: 09 авг 2013, 19:09
antonbright
а как мне это значение запихнуть в текствью а не в листвью?)
Re: Сумма значений столбца
Добавлено: 09 авг 2013, 19:10
antonbright
это я уже сделал по уроку SQL но мне нужно чтобы над листвью был тексвью в котором было значение суммы, а собственно за ним уже слагаемые в листе
Re: Сумма значений столбца
Добавлено: 09 авг 2013, 19:38
Foenix
твойтесктвью.setText(полученное значение);
Re: Сумма значений столбца
Добавлено: 09 авг 2013, 20:08
antonbright
хм я пробовал что то не вышло, поэтому начал делать с суммированием значений массива. но попробую еще раз спасибо
Re: Сумма значений столбца
Добавлено: 09 авг 2013, 20:51
Foenix
antonbright писал(а):это я уже сделал по уроку SQL но мне нужно чтобы над листвью был тексвью в котором было значение суммы, а собственно за ним уже слагаемые в листе
ты же сказал, что все хорошо получилось?
через массив делать просто ужасно неправильно.
1. В запросе бд , который я привела, получаете курсор с 1 значением в 1 столбце.
2. читаете это значение в переменную, предварительно поставив указатель записи в курсоре на 1 позицию, а еще предварительей проверив курсор на значение null
3. Оператором, который я привела, запихиваете значение в текствью.
Re: Сумма значений столбца
Добавлено: 09 авг 2013, 21:05
antonbright
я про суммы первый раз спрашиваю совет. у меня по дате все получилось во многом благодаря Вам)
Re: Сумма значений столбца
Добавлено: 09 авг 2013, 21:37
Foenix
я что-то запуталась, ты после этого
Foenix писал(а):select sum(STOLBIK) from table TABLITSA
сказал, что все получилось,
antonbright писал(а):это я уже сделал по уроку SQL но мне нужно чтобы над листвью был тексвью в котором было значение суммы, а собственно за ним уже слагаемые в листе
и теперь нужно это значение поместить в текствью.
Если все равно не понятно, то давай по шагам. Что именно ты делаешь, что получилось уже, а что никак не получается.
Re: Сумма значений столбца
Добавлено: 09 авг 2013, 22:33
antonbright
а ну я имел в виду что у меня получилось сделать по уроку но засунул я в адаптер пытался в текствью а это не вышло. завтра с утра попробую что вы сказали
Re: Сумма значений столбца
Добавлено: 10 авг 2013, 15:52
Mikhail_dev
Может не получилось, потому что текстВью принимает только строковые значения?
Тогда уже вот так. твойтесктвью.setText(""+полученное значение);
Re: Сумма значений столбца
Добавлено: 10 авг 2013, 16:58
Foenix
Достаточно из курсора прочитать значение asString
Re: Сумма значений столбца
Добавлено: 13 авг 2013, 22:53
Foenix
antonbright писал(а):
а также не получается суммировать

Ты не совсем разобрался. Вот тут
Код: Выделить всё
String sqlQuery = "select * from REGISTRATION_TABLE where TESTDATE = ?";
Cursor c = database_ob.rawQuery(sqlQuery, new String[] {test3});
sqlQuery - это запрос, где ты можешь, если хочешь, вместо ПЕРЕМЕННЫХ запроса вписать вопросительные знаки ?
new String[] {test3} - а это массив из строковых значений, их должно быть столько, сколько ? (в данном случае просто 1).
Поэтому вместо
Код: Выделить всё
String sqlQuery = "select * from REGISTRATION_TABLE "
+ "where TESTDATE BETWEEN test3 and test4";
Cursor c = database_ob.rawQuery(sqlQuery, new String[] {test3});
тут будет
Код: Выделить всё
sqlQuery = "select * from REGISTRATION_TABLE where TESTDATE BETWEEN ? and ?";
а при вызове
Код: Выделить всё
Cursor c = database_ob.rawQuery(sqlQuery, new String[] {test3,test4})
А можно не пользоваться параметрами (?), а сразу составлять строку запроса в виде суммы других строчек.
Код: Выделить всё
sqlQuery = "select * from REGISTRATION_TABLE where TESTDATE BETWEEN "+test3+" and "+test4
и вызывать с
Re: Сумма значений столбца
Добавлено: 15 авг 2013, 10:23
antonbright
если я использовал стрингбилдер и моя дата в таком формате 15/9/2013 можно ли будет ее сравнить с 13/9/2013 или использовать без аппендов просто 1592013 и 1392013??
Re: Сумма значений столбца
Добавлено: 15 авг 2013, 14:48
Foenix
а кому я говорила про хранение даты и предлагала два прекрасных способа?
нет, в таком виде как у тебя - нельзя сравнить. Переделывай, пока не поздно.
В таком виде, или аналогичном, например 01.01.2013 можно хранить лишь в том случае, если у тебя дата используется ТОЛЬКО для вывода на экран и по ней не будет запросов никаких!
Re: Сумма значений столбца
Добавлено: 15 авг 2013, 17:15
antonbright
1592013 а так то можно?)
Re: Сумма значений столбца
Добавлено: 15 авг 2013, 17:17
Foenix
даже сложно понять какая это дата - всего 7 цифр, а нужно 8.
и можно только 2 способами которые я упоминала. Все. Только 2.
Re: Сумма значений столбца
Добавлено: 15 авг 2013, 17:37
antonbright
ну YYYYMMDD это же тоже самое только у меня идет день/месяц/год
Re: Сумма значений столбца
Добавлено: 15 авг 2013, 19:35
Foenix
да, но данный форма позволяет сравнить две даты, как будто это просто числа, и ответ будет верным.
Например,дата 20120101 будет всегда находиться межды 20110101 и 20130101, так же как и число.
Как ты будешь сравнивать в твоем формате я не знаю.
Re: Сумма значений столбца
Добавлено: 26 авг 2013, 21:12
antonbright
Код: Выделить всё
public Cursor Sum(){
opnToWrite();
String[] cols={openHelper_ob.KEY_ID, "sum(LNAME) as LNAME"};
Cursor c = database_ob.query(openHelper_ob.TABLE_NAME, cols, null, null, null, null,
null);
return c;
}
Суммирование получается как мне теперь закинуть в текствью? У меня получается только в листвью закинуть через
Код: Выделить всё
String[] from1 = {helper_ob.LNAME};
int[] to1 = { R.id.tv_lname};
cursor = adapter_ob.Sum();
SimpleCursorAdapter cursorAdapter1 = new SimpleCursorAdapter(this,
R.layout.row1, cursor, from1, to1);
lv1.setAdapter(cursorAdapter1);
А еще не получается с выборкой даты из заданного промежутка
Код: Выделить всё
public Cursor test(String test3, String test4){
opnToWrite();
String sqlQuery = "select * from REGISTRATION_TABLE "
+ "where TESTDATE BETWEEN ? and ?";
Cursor c = database_ob.rawQuery(sqlQuery, new String[] {test3,test4});
return c;
}
Помогите плз