2012-02-01 61 views
0

我有一個應用程序,使用SQLite記錄日期&時間的開支。 我的表看起來是這樣的:在SQLite合併行 - Android

__________________________________________ 
| 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 | 
|  |   |   |   | 
|________|__________|_________|__________| 

誰能幫助我有了這個?? 我知道如何創建和更新表格,我只是在尋找一種合併行的方式,以便在列表視圖中輕鬆顯示! - 感謝

+0

數據庫將一個信息存儲在一個單元格中。你想要將多個值存儲在一行中? – Arslan 2012-02-01 21:38:40

+0

你所要求的是無法完成的。數據庫中的每一行都是獨立的。所以忘記更改數據庫來解決您的問題..答案將在於如何形成SQL查詢並設置您的適配器邏輯。描述你想要的最終結果將有助於人們回答你的真實問題。 – JustinMorris 2012-02-02 15:47:51

回答

0

不知道你的意思是合併....你會鬆散的日期和時間相關的信息,如果你合併了幾個月....如果你有其他表取決於該ID,你需要先修改它們。

但是就合併本身,看​​看到SQL命令「GROUP BY」

如果你想要做的就是改變顯示的內容,那麼就不要在數據庫中的任何改變......只是寫一些代碼比較了你想要顯示的內容和前一行的顯示內容。

0

我想使它所以當另一行添加帶有重複列 信息,它會與上一行

你不能做到這一點的更新/插入側合併。你必須在查詢端進行管理。深入瞭解你的listview看起來會有所幫助。

0

你所要求的是規範你的數據庫。爲了存儲您描述的信息,您可以使用三個表並使用外鍵連接它們。

一爲一個月:

 
_____________________ 
| 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 | 
|________|_____________|__________| 

這樣你的數據庫既沒有冗餘,也不空 - 值。從你的數據庫遷移到這個佈局可能是一個安靜的障礙,但也許值得付出努力。

更多閱讀:Wikipedia on Database normalization