我在我的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选项时 - 我只获得了一个参数渲染。如何使用聚合数据显示列表视图。
尝试使用SQLite的group_concat()函数,看看here。
改变你的sql:
SELECT 'Project Name',OutletName,group_concat(param) as params
FROM tableName
GROUP BY 'Project Name',OutletName