SQLite Query in class CursorAdapter geht nicht :(

derjens

derjens

Ambitioniertes Mitglied
5
Einen schönen guten Tag Wünsche ich.

Folgendes Problem:

Ich habe eine ListActivity mit einem Custom CursorAdapter realisiert. Funktioniert soweit auch.
In der ListActivity sollen Projekte und deren Gesamtstunden angezeigt werden.

| ID #1 | Projektname | Gesamtstunden XXX:XX | -> hat z.B. 5 Buchungen aus denen die Zeiten für die Gesamtstunden berechnet werden müssen
| ID #2 | Projektname | Gesamtstunden XXX:XX | -> hat z.B. 2 Buchungen aus denen die Zeiten für die Gesamtstunden berechnet werden müssen
| ID #3 | Projektname | Gesamtstunden XXX:XX | -> hat z.B. 15 Buchungen aus denen die Zeiten für die Gesamtstunden berechnet werden müssen
| ID #4 | Projektname | Gesamtstunden XXX:XX | .....
| ID #5 | Projektname | Gesamtstunden XXX:XX | .....
.......

Wie bekomme ich es hin das ich die Buchungen für jedes Projekt abfrage um die Gesamtstunden zu berechnen die ich in der ListActivity ausgeben will??

Alle Datenbankabfragen mache ich über einen ContentProvider.

Gruß
derjens
 
Zuletzt bearbeitet:
Ohne Code kann man dir da glaube ich nicht viel weiter helfen. Prinzipiell hat der Cursor, mit dem du über SQLite die Datenbank abfragst nichts mit dem Adapter zu tun, der für die Datenhaltung in deiner ListActivity zuständig ist.

Normalerweise sieht der Weg so aus, dass man mit dem Cursor die Values aus der DB holt, sie in ein Objekt packt und dieses Objekt dem Adapter übergibt.
 
wenn du einen CursorAdapter nutzt, hat der Cursor natürlich was mit deinem Adapter zu tun :)
 
Hallo Jungs.

Habe meine Frage mal umformuliert.

Gruß
derjens
 
derjens schrieb:
Wie bekomme ich es hin das ich die Buchungen für jedes Projekt abfrage um die Gesamtstunden zu berechnen die ich in der ListActivity ausgeben will??
Ich würde die SELECT-Anweisung entsprechend formulieren. Dazu eignen sich dann die SUM()-Funktion in Kombination mit der GROUP BY-Klausel. Also irgendwas in der Art:

Code:
SELECT p.ProjektID, p.Projektname, SUM(b.Stunden) AS SummeStunden
FROM Projekte p INNER JOIN Buchungen b ON p.ProjektID = b.ProjektID
GROUP BY p.ProjektID, p.Projektname


-> SQLite Aggregate Functions
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: derjens
Danke Thyrion.

Werde mir das mal etwas genauer anschauen.

Gruß
derjens
 
Hallo Thyrion.

Hab mal deinen vorschlag etwas weiter gesponnen und folgendes SQL Statment gebastelt:

Code:
SELECT p._id, p.bezeichnung, 
GROUP_CONCAT (b.startzeit , ',') AS buchung_start,
GROUP_CONCAT (b.endzeit , ',') AS buchung_ende
FROM projekt p 
LEFT OUTER JOIN buchung b ON b.projekt_fk = p._id
GROUP BY p._id, p.bezeichnung
als Ausgabe erhalte ich dann diese

1 | Projektname | 07:30,07:31,07:32 | 13:45,14:30,11:30
2 | Projektname | 08:30,08:31,08:32 | 12:30,12:00,15:30
3 | Projektname | {null} | {null}
4 | Projektname | {null} | {null}
5 | Projektname | {null} | {null}
6 | Projektname | {null} | {null}
7 | Projektname | 08:39 | 24:00
8 | Projektname | {null} | {null}

Ich glaub damit kann ich was Anfangen ;)

Gruß
derjens
 

Ähnliche Themen

R
Antworten
6
Aufrufe
1.025
swa00
swa00
D
Antworten
23
Aufrufe
2.679
Data2006
D
Zurück
Oben Unten