Android ListView - 从SQLite获取值,其中一列为group by

问题描述 投票:0回答:1

我在我的Android应用程序中将SQLite表中的列呈现为ListView。数据如下所示:

Project Name   OutletName  param
RA_Pepsi       Tesco       Shelfstrip left
RA_Pepsi       Tesco       Shelfstrip right
RA_Cocacola    Tesco       Shelfstrip top
RA_Cocacola    Coors       Shelfstrip bottom

我使用以下代码来呈现ListView

sqLiteDatabase = sqLiteHelper.getWritableDatabase();
cursor = sqLiteDatabase.rawQuery("SELECT * FROM "+SQLiteHelper.TABLE_NAME2+"", null);
ProjectName_Array.clear();
OutletName_Array.clear();
ParamName_Array.clear();


if (cursor != null && cursor.getCount() > 0) {
    if (cursor.moveToFirst()) {
        do {
                    ProjectName_Array.add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.Table2_Column_ProjectName)));
                    OutletName_Array.add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.Table2_Column_OutletName)));
                    ParamName_Array.add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.Table2_Column_PARAM)));
                } while (cursor.moveToNext());
            }
        } else {
            Toast.makeText( this, "No data to display!", Toast.LENGTH_SHORT ).show();
        }

使用自定义适配器,这将数据呈现为ListView,如下所示:

RA_Pepsi
Tesco
Shelfstrip left

RA_Pepsi
Tesco
Shelfstrip right

RA_CocaCola
Tesco
Shelfstrip top

RA_CocaCola
Coors
Shelfstrip bottom

但是,我想在每个项目和商店级别聚合参数并显示如下

RA_Pepsi
Tesco
Shelfstrip left
Shelfstrip right

RA_CocaCola
Tesco
Shelfstrip top

当我使用项目和插座名称列尝试group by选项时 - 我只获得了一个参数渲染。如何使用聚合数据显示列表视图。

android listview
1个回答
1
投票

尝试使用SQLite的group_concat()函数,看看here

改变你的sql:

SELECT 'Project Name',OutletName,group_concat(param) as params
FROM tableName
GROUP BY 'Project Name',OutletName
© www.soinside.com 2019 - 2024. All rights reserved.