Autore Topic: Query GROUP BY  (Letto 440 volte)

Offline Kris

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
Query GROUP BY
« il: 06 Settembre 2013, 19:49:18 CEST »
0
Ho una query Group By che non và...il Logcat dice NullPointerException
è sbagliata la query??
Grazie
Codice (Java): [Seleziona]
                        String sql = "SELECT Cat, SUM(En)  FROM Gio WHERE en>0 AND data LIKE '"+anno+"-"+mese+"%' GROUP BY Cat";

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Query GROUP BY
« Risposta #1 il: 06 Settembre 2013, 19:59:50 CEST »
0
A prima vista non vedo errori nella query, ma non sono una cima in SQL.

Puoi incollare tutta la parte di errore del logcat?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Kris

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
Re:Query GROUP BY
« Risposta #2 il: 06 Settembre 2013, 20:02:04 CEST »
0
eccolo
Codice (Java): [Seleziona]
09-06 20:01:53.066: E/AndroidRuntime(32705): java.lang.IllegalStateException: Couldn't read row 0, col 2 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
09-06 20:01:53.066: E/AndroidRuntime(32705):    at android.database.CursorWindow.nativeGetDouble(Native Method)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at android.database.CursorWindow.getDouble(CursorWindow.java:543)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at android.database.CursorWindow.getFloat(CursorWindow.java:594)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at android.database.AbstractWindowedCursor.getFloat(AbstractWindowedCursor.java:81)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at it.de.Elenco_categorie_group_E.showDetails(Elenco_categorie_group_E.java:119)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at it.de.Elenco_categorie_group_E.access$1(Elenco_categorie_group_E.java:101)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at it.de.Elenco_categorie_group_E$1.onItemSelected(Elenco_categorie_group_E.java:89)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at android.widget.AdapterView.fireOnSelected(AdapterView.java:895)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at android.widget.AdapterView.access$200(AdapterView.java:50)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:863)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at android.os.Handler.handleCallback(Handler.java:725)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at android.os.Handler.dispatchMessage(Handler.java:92)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at android.os.Looper.loop(Looper.java:137)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at android.app.ActivityThread.main(ActivityThread.java:5328)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at java.lang.reflect.Method.invokeNative(Native Method)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at java.lang.reflect.Method.invoke(Method.java:511)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
09-06 20:01:53.066: E/AndroidRuntime(32705):    at dalvik.system.NativeStart.main(Native Method)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Query GROUP BY
« Risposta #3 il: 06 Settembre 2013, 20:07:52 CEST »
0
A occhio l'errore è in come leggi il cursore. Puoi postare anche quella parte di codice?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Query GROUP BY
« Risposta #4 il: 06 Settembre 2013, 20:08:06 CEST »
0
Non c'è nessun null pointer in questo log...
Una volta che ottieni il cursore lo posizioni sulla prima riga prima di leggerlo?

Edit: scusa bradipao, mi hai anticipato di una manciata di secondi ;)

Offline Kris

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
Re:Query GROUP BY
« Risposta #5 il: 06 Settembre 2013, 20:21:27 CEST »
0
Codice (Java): [Seleziona]
}
                        String sql = "SELECT Cat, SUM(En)  FROM Gio WHERE en>0 AND data LIKE '"+anno+"-"+mese+"%' GROUP BY Cat";
                        Cursor c = db.rawQuery(sql, null);
                       
                        while (c.moveToNext()){
                                Dettaglio d = new Dettaglio();
                               
                                d.cat = c.getString(1);
                                d.en = c.getFloat(2);
                               
                               
                                dettagli.add(d);

Offline jfabrix101

  • Nuovo arrivato
  • *
  • Post: 10
  • jfabrix101 - Android Developer
  • Respect: +2
    • jfabrix101
    • Mostra profilo
    • Fabrizio Russo
  • Dispositivo Android:
    Galaxy Nexus - Asus Transformer Prime
  • Play Store ID:
    frusso
  • Sistema operativo:
    Ubuntu
Re:Query GROUP BY
« Risposta #6 il: 07 Settembre 2013, 00:04:14 CEST »
0
Devi partire da zero a leggere il cursore
Cioè geString(0) e non da 1 per il primo campo


Inviato dal mio Transformer Prime TF201 con Tapatalk 4

Offline Kris

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
Re:Query GROUP BY
« Risposta #7 il: 07 Settembre 2013, 00:09:03 CEST »
0
No, stesso errore anche partendo da (0)

Offline crbin1

  • Utente junior
  • **
  • Post: 61
  • Respect: +6
    • labeltodo
    • Mostra profilo
    • Do Androids Dream of Electric Sheep?
  • Dispositivo Android:
    Galaxy Nexus
Re:Query GROUP BY
« Risposta #8 il: 07 Settembre 2013, 01:13:02 CEST »
0
Devi fare prima

Codice (Java): [Seleziona]
if (c.moveToFirst()){
e controllare che sia vero