Страница 7 из 11

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 05 фев 2014, 00:07
_ILYA_
извините затупил :x

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 05 фев 2014, 00:46
Foenix
не нужны там кавычки
почему падает СМОТРИ В ЛОГЕ!

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 05 фев 2014, 00:56
altwin
Foenix писал(а):не нужны там кавычки
почему падает СМОТРИ В ЛОГЕ!
типо я совсем баран? :) COLUMN_YEAR - строковая константа, такого поля в базе нет( valueOf(COLUMN_YEAR)= 2014 ). Там очень нужны кавычки ;)
Иногда нужно отдыхать.. :)

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 05 фев 2014, 06:37
Foenix
ну да, я ж не отредактированный вопрос видела, где этой глупой фразы, что ГОД - это СТРОКА я не видела и предположить не могла. Спрашивается - зачем????

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 05 фев 2014, 10:25
altwin
Foenix писал(а):ну да, я ж не отредактированный вопрос видела, где этой глупой фразы, что ГОД - это СТРОКА я не видела и предположить не могла. Спрашивается - зачем????
это уже другой вопрос :)

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 06 фев 2014, 21:59
_ILYA_
позвольте еще два вопроса.
1.как получить разные значения MONTH?
я так сделал:

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

public Cursor getMonths(String year)
	{
		String _sql = "select distinct " + COLUMN_MONTH + " from " + DB_TABLE + 
				" order by " + COLUMN_MONTH + " desc";
		return m_db.rawQuery(_sql, null);
	} 
все работает. Но может так криво? (я сейчас не про формат даты)


2. в таблице есть столбец REAL V. Как получить сумму V за каждый месяц? Метод rawQuery() возвращает Cursor, и как туда запихнуть сумму?

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 07 фев 2014, 06:57
Foenix
1. нормально
2. в sqlite нет такого типа real. Я ссылку давала, или ищи в гугле
3. как из курсора получить число - смотри в уроках. Как просуммировать - запросом, конечно же. ЛЮбые методы, выполняющие запросы в результате получают курсор.

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 07 фев 2014, 19:58
_ILYA_
в sqlite нет такого типа real
а тут http://developer.alexanderklimov.ru/and ... sqlite.php вот что написано :

SQLite поддерживает типы TEXT (аналог String в Java), INTEGER (аналог long в Java) и REAL (аналог double в Java). Остальные типы следует конвертировать, прежде чем сохранять в базе данных. SQLite сама по себе не проверяет типы данных, поэтому вы можете записать целое число в колонку, предназначенную для строк и наоборот.

Тип Описание
NULL пустое значение
INTEGER целочисленное значение
REAL значение с плавающей точкой
TEXT строки или символы в кодировке UTF-8, UTF-16BE или UTF-16LE
BLOB бинарные данные
я и сам на практике проверил, ни каких ошибок.
как из курсора получить число - смотри в урока
как получить число я знаю, но ведь в моей таблице изначально не столбца сумма. Тут я ни как не соображу.
Может надо создавать временную таблицу со столбцами: год, месяц сумма?

ни как не соображу гугл то же особо не помог.

мне нужен список, содержащий пункты; меся, год и сумма за этот месяц

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 07 фев 2014, 21:15
Foenix
Про real да, затупила спросонья, прости
но если у тебя там деньги, то оно мало подходит для хранения денежных сумм
столбец сумма получается запросом
select sum(DDD) as summa from ...
если суммировать нужно по какому-то параметру, например, двум полям одновременно, то в конце запроса добавляешь group by POLE1,POLE2
если это имеется ввиду.

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 07 фев 2014, 22:07
_ILYA_
Про real да, затупила спросонья, прости
но если у тебя там деньги, то оно мало подходит для хранения денежных сумм
Да ни чего, бывает.
а что подходит?

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 07 фев 2014, 22:26
Foenix
я в целых храню

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 07 фев 2014, 23:23
_ILYA_
ни как не получается.
таблица со столбцами COLUMN_YEAR COLUMN_MONTH COLUMN_DAY. Так же есть список ListView. В каждом пункте списка отображается: месяц, год(дни не надо) и сумма за этот месяц. Должно выводится в порядке убывания дат.
Со всем кроме суммы разобрался все работает. Добавил сумму, приложение падает

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

public Cursor getMonths(String year)
	{
		String _sql = "select sum(" + COLUMN_MONEY + ") as " + TOTAL_SUM + ", distinct " + COLUMN_MONTH +
				" from " + DB_TABLE + 
				" where " + COLUMN_YEAR + "=" + year +
				" order by " + COLUMN_MONTH + " desc";
		return m_db.rawQuery(_sql, null);
	} 

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 07 фев 2014, 23:26
Foenix
потому, что они у тебя строковые. Я же сказала - убери эту глупость и сделай правильно.

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 07 фев 2014, 23:28
Foenix
:twisted: :twisted: :twisted: :twisted: а почему падает В ЛОГЕ НАПИСАНО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 07 фев 2014, 23:29
Foenix
и запрос у тебя - у меня даже слов нет. Я же сказала как делать!!

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 07 фев 2014, 23:31
_ILYA_
Foenix писал(а):и запрос у тебя - у меня даже слов нет. Я же сказала как делать!!
ни как не соображу как это все собрать. То есть у меня в синтаксисе SQL ошибки?

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 07 фев 2014, 23:40
Foenix
я все написала.

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 08 фев 2014, 00:03
_ILYA_
а можно пример в коде?

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 08 фев 2014, 21:18
_ILYA_
вроде разобрался, может и криво сделал, но работает

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

public Cursor getMonths(String year)
	{
		String _sql = "select " + COLUMN_ID + ", " + COLUMN_YEAR + ", " + COLUMN_MONTH +
				", sum(" + COLUMN_MONEY + ") as "+ TOTAL_SUM +
				" from " + DB_TABLE + 
				" where " + COLUMN_YEAR + "=" + year +
				" group by " + COLUMN_MONTH +", " + COLUMN_YEAR;
				
		return m_db.rawQuery(_sql, null);
	} 

Re: Урок 36. SQLite. Подробнее про метод query. Условие, сор

Добавлено: 23 фев 2014, 21:10
_ILYA_
какое исключение выбрасывается при не правильном синтаксисе SQL запроса