2017-02-10 95 views
0

我有2個問題,但它們差不多相關。如何獲得不同表格的總和但列名相同

1號問題:

我有一個名爲早餐,午餐,晚餐和其他 4個不同的表,但他們能有像脂肪,熱量和鐵的列名相同。

什麼是最好的方式來添加它們,並將它們顯示一個TextView爲一體,爲各(脂肪,熱量和鐵)

例如像

Total Fat is (111) 
Total Calories is (222) 
Total Iron is (333) 

第二個問題

如果我想全部顯示不同表格的列數據的話。 如何在sqlite中顯示來自不同表的所有列的脂肪值?

例如,我有這個在我的SQLite數據庫

breakfast table lunch table  dinner table  others table 
    Fat column  Fat column   Fat column   Fat column 
    1     3     6     9 
    2     4     7     10 
    3     5     8     11 

,我想表明,關於TextView的是這樣的

Fats 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
+2

*我有2個問題* - 所以你應該問兩個單獨的問題 –

+0

也許我應該問不同的問題先生,但這2個問題遠遠不夠對方,所以我認爲一個問題可以回答這些問題之一可以也回答另一個。 –

回答

2

我會做1臺,並添加一列所謂timeOfDay

數據庫幫助處理程序類

public ArrayList<Integer> getFats(int timeOfDay) { 
    //0:breakfast 
    //1:lunch 
    //3:dinner 
    //4:other 
    ArrayList<Integer> result = new ArrayList<Integer>(); 
    SQLiteDatabase db = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY); 
    String selectQuery = "SELECT * FROM TABLE WHERE timeOfDay = " + timeOfDay; 
    Cursor cursor = db.rawQuery(selectQuery, null); 
    if (cursor.moveToFirst()) { 
     result.add(cursor.getInt(cursor.getColumnIndex("fatColumn"))); 
     while (cursor.moveToNext()) { 
      result.add(cursor.getInt(cursor.getColumnIndex("fatColumn"))); 
     } 
    } 
    cursor.close(); 
    db.close(); 
    return result; 
} 

要顯示的信息

ArrayList<Integer> fats = db.getFats(1); 
int fatTotal = 0; 
for(Integer fat : fats){ 
    //output string for this particular fat reading 
    fatTotal += fat; 
} 
//output string of sum sort for totalFat 
0

活動裏面我有一個名爲早餐,午餐,晚餐和其他4個不同的表,但他們能有像脂肪,熱量和鐵

相同的列名

讓不同的表具有相同的列應該是您的主要問題,而不是如何組合單獨的表。 (因爲JOIN的和交叉表掃描是昂貴的)

你還是這樣做

CREATE TABLE IF NOT EXISTS meals (
    _id PRIMARY KEY AUTOINCREMENT, 
    meal_time VARCHAR(20), 
    fat INTEGER, 
    calories INTEGER, 
    iron INTEGER, 
    time_eaten DEFAULT current_timestamp 
) 

編號上的默認值 - Can I create a datetime column with default value in sqlite3?

,那麼你會INSERTmeal_time = 'dinner'並選擇一個值例如,WHERE meal_time = 'dinner'

在這一點上,你的第二個問題是微不足道的......

SELECT fat from meals ORDER BY meal_time; 

如果你想吃飯,午餐,早餐的特定選項,然後添加一個WHERE如圖所示。

相關問題