2011-02-22 25 views
0

我需要使用2个链接表和1个聚合函数进行查询。 在我的情况下,查询工作正常,但它似乎不能用于适配器(因为聚合函数)。带有2个链接表和1个聚合函数(SUM)的查询不能在没有适配器的情况下使用? (在列表视图中使用)

这是我的函数来获取查询:

public Cursor recupererRecapParFichier(String argument) { 
    return db.rawQuery("SELECT transactions._id as idT, utilisateurs._id as idU, SUM(transactions.montantTransaction) as total , utilisateurs.nomUtilisateur as nomU FROM transactions " + 
      "JOIN utilisateurs ON utilisateurs._id=transactions.idUtilisateurTransaction " + 
      "WHERE transactions.idUtilisateurTransaction=" + argument + " GROUP BY utilisateurs.nomUtilisateur, transactions._id, utilisateurs._id" 
      , null);          } 

而现在,我如何让我的光标:

argument = Long.toString(listeFichiers.getSelectedItemId()); 
    Cursor c = db.recupererRecapParFichier(argument); 
    startManagingCursor(c); 

现在,我能做些什么来把数据放到我的ListView?我试过使用一个适配器,但由于聚合函数存在问题。

谢谢

回答

0

您的问题不是由于聚合函数,AFAICT。您的问题是,结果集中没有名为_ID的列。您必须有一个才能使用CursorAdapter

0

好的,问题正是你所说的! CURSO必须有一列名为“_id”,即使它只是一个别名...

我的解决办法:

return db.rawQuery("SELECT SUM(transactions.montantTransaction) as total , utilisateurs.nomUtilisateur as _id FROM transactions " + 
       "JOIN utilisateurs ON utilisateurs._id=transactions.idUtilisateurTransaction " + 
       "WHERE transactions.idFichierTransaction=" + argument + " GROUP BY utilisateurs.nomUtilisateur" 
       , null); 
相关问题