Запрос с 2 связанными таблицами и 1 агрегатной функцией (SUM) нельзя использовать без адаптера.(для использования в listView) - PullRequest
0 голосов
/ 22 февраля 2011

Мне нужно сделать запрос с 2 связанными таблицами и 1 агрегатной функцией.В моем случае запрос работает нормально, но кажется, что его нельзя использовать с адаптером (из-за функции агрегата).

Это моя функция для получения запроса:

    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?Я пытался использовать адаптер, но есть проблема из-за функции агрегата.

Спасибо

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Хорошо, проблема была именно в том, что вы сказали! У 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);
0 голосов
/ 22 февраля 2011

Ваша проблема не связана с функцией агрегирования, AFAICT.Ваша проблема в том, что у вас нет столбца в наборе результатов с именем _ID.У вас должен быть один для работы с CursorAdapter.

...