Слияние строк в SQLite - Android - PullRequest
0 голосов
/ 02 февраля 2012

У меня есть приложение, которое записывает расходы с датой и временем, используя SQLite.Моя таблица выглядит примерно так:

__________________________________________
|   ID   |   Month  |   Day   |   Time   |
|________|__________|_________|__________|
|   1    |   JAN    |   19    |   2:00   |
|   2    |   JAN    |   21    |  12:50   |
|   3    |   JAN    |   21    |   1:35   |
|   4    |   FEB    |   09    |   4:10   |
|        |          |         |          |
|________|__________|_________|__________|

Я хочу сделать так, чтобы при добавлении другой строки с дублирующейся информацией столбца она сливалась с предыдущей строкой:

__________________________________________
|   ID   |   Month  |   Day   |   Time   |
|________|__________|_________|__________|
|   1    |   JAN    |   19    |   9:00   |
|        |          |   21    |  12:50   |
|        |          |         |   1:35   |
|   2    |   FEB    |   09    |   4:10   |
|        |          |         |          |
|________|__________|_________|__________|

Можеткто-нибудь помочь мне с этим ??Я знаю, как создавать и обновлять таблицы, я ищу только способ объединения строк, чтобы он легко отображался в виде списка!-Спасибо

Ответы [ 3 ]

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

Я хочу сделать так, чтобы при добавлении другой строки с повторяющимся столбцом информация, она объединится с предыдущей строкой

Вы не можете сделать это на стороне обновления / вставки. Вы должны управлять этим на стороне запроса. Было бы полезно узнать, как выглядит ваш просмотр списка.

0 голосов
/ 02 июля 2012

То, что вы просите, - это нормализация вашей базы данных. Для хранения информации, которую вы описываете, вы использовали бы три таблицы и связывали их с внешними ключами.

Один за месяц:

_____________________
|   ID   |   Month  |
|________|__________|
|   1    |   JAN    |
|   2    |   FEB    |
|________|__________|

Еще один на несколько дней:

__________________________________
|   ID   |   Month_ID  |   Day   |
|________|_____________|_________|
|   1    |      1      |   19    |
|   2    |      1      |   21    |
|   3    |      2      |   09    |
|________|_____________|_________|

И еще один на тот момент:

___________________________________
|   ID   |   Day_ID    |   Time   |
|________|_____________|__________|
|   1    |      1      |   2:00   |
|   2    |      2      |  12:50   |
|   3    |      2      |   1:35   |
|   4    |      3      |   4:10   |
|________|_____________|__________|

Таким образом, ваша база данных не имеет ни избыточности, ни нулевых значений. Миграция из вашей БД в эту компоновку может стать препятствием, но, возможно, стоит усилий.

Дополнительная литература: Википедия по нормализации базы данных

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

Не уверен, что вы подразумеваете под слиянием .... вы потеряете информацию, относящуюся к дню и времени, если вы слились по месяцам .... и если у вас есть другие таблицы в зависимости от этого идентификатора, вам потребуетсяизмените их в первую очередь.

Но что касается слияния, загляните в команду SQL 'GROUP BY'

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

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