2010-11-19 14 views
2

J'ai une requête qui utilise GROUP BY de sorte que les résultats sont regroupés par une colonne de date. Ma question est la suivante:Question Android sur SQL Cursor et GROUP BY

Lorsque je parcours le curseur pour obtenir les résultats de la requête, comment puis-je obtenir les multiples éléments associés à chaque groupe dans mon vecteur? Par exemple, je veux obtenir à la fois "Article X" et "Article Y" pour le 16 octobre 2010. Actuellement, je les reçois chacun séparément. Voici mon code:

Vector<Event> v = new Vector<Event>(); 
Event e; 

detailCursor.moveToFirst(); 
while (detailCursor.isAfterLast() == false) { 
     e = new Event(); 
     e.setEventDate(detailCursor.getString(detailCursor 
       .getColumnIndex("eventDate"))); 
     e.setItem(detailCursor.getString(detailCursor 
       .getColumnIndex("Item"))); 

     v.add(e); 

     detailCursor.moveToNext(); 
} 
detailCursor.close(); 

Alors, quand je reçois les résultats de mon Vector, je reçois:

12 Octobre, 2010 - Article X

12 Octobre, 2010 - Article Y

et je veux:

12 Octobre 2010 - article X, Y Point

Oui, je dois changer mon vecteur pour soutenir plusieurs éléments, mais j'espère que vous obtenez quel problème je suis confronté ...

Merci!

+0

La clause 'GROUP BY' n'est pas prise en charge dans Android ICS http://stackoverflow.com/questions/8837544/android-ics-sqlite-error – Eir

Répondre

1

Si vos données sont fournies par SQLite, vous devez modifier votre requête et utiliser GROUP_CONCAT(col) dans ce cas.

Cela va concaténer en une valeur toutes les sous-valeurs pour le même groupe.