Страница 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
и вызывать с

Код: Выделить всё

rawQuery(sqlQuery, null)

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;
	}


Помогите плз