Sqlite und sum
Sqlite und sum
Hallo Forum,
ich habe hier ein kleine Hürde die ich nicht gebacken bekomme.
Ich schreibe ein Fahrtenbuch-Programm für mich.
Hier habe ich eine SQLite Datenbank mit zwei Tables (Adresse,Besuchdaten)
Adresse hat folgende Spalten
ID, Name, Adresse, ort, km
Besuchdaten hat folgende
ID, IDAdresse, Datum, km
der Bezug besteht zwischen id und IDAdresse.
Wenn ich jetzt in meinem ListViewGadget eine Adresse anwähle, werden in meinem Besuch ListViewGadget
alle Besuche angezeigt.
Jetzt mein Problem.
Wie bekomme ich in meine Variable Kilometer.i die Summe (sum) der gesamten Kilometer von diese Adresse.
Ich hoffe mir kein jemand helfen.
Gruß
gnaps
ich habe hier ein kleine Hürde die ich nicht gebacken bekomme.
Ich schreibe ein Fahrtenbuch-Programm für mich.
Hier habe ich eine SQLite Datenbank mit zwei Tables (Adresse,Besuchdaten)
Adresse hat folgende Spalten
ID, Name, Adresse, ort, km
Besuchdaten hat folgende
ID, IDAdresse, Datum, km
der Bezug besteht zwischen id und IDAdresse.
Wenn ich jetzt in meinem ListViewGadget eine Adresse anwähle, werden in meinem Besuch ListViewGadget
alle Besuche angezeigt.
Jetzt mein Problem.
Wie bekomme ich in meine Variable Kilometer.i die Summe (sum) der gesamten Kilometer von diese Adresse.
Ich hoffe mir kein jemand helfen.
Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: Sqlite und sum
Code: Alles auswählen
SELECT Name, Adresse, Ort, Sum(Besucher.km) AS GesamtKM FROM Adresse
LEFT JOIN Besucher ON Besucher.IDAdresse = Adresse.ID
GROUP BY Adresse.ID
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Sqlite und sum
Hallo,
danke Stargate für die schnelle Antwort jedoch ist mir das zu hoch.
Ich verstehe die Anweisung nicht.
Ich dachte das geht einfach so
IDAdresse.i = meine eindeutige Adressen ID
nicht hauen bin Anfänger in SQLIte
Gruß
gnaps
danke Stargate für die schnelle Antwort jedoch ist mir das zu hoch.
Ich verstehe die Anweisung nicht.
Ich dachte das geht einfach so
Code: Alles auswählen
GesamtkilometerAdresse.i=DatabaseQuery(#DB, "Select sum(km) from Besuchdaten where BesuchAdresseid = "+Str(IDAdresse.i))
nicht hauen bin Anfänger in SQLIte
Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: Sqlite und sum
Ja klar geht das auch so, aber dann wäre es doch nur einzeln.
Dann muss da aber trotzdem ein GROUP BY rein, damit die Summe gebildet werden kann:
Ich dachte du wolltest deine vollständige Adressenanzeige (ListViewGadget) gleich den den summierten Kilometern anzeigen.
Dann muss da aber trotzdem ein GROUP BY rein, damit die Summe gebildet werden kann:
Code: Alles auswählen
SELECT sum(km) FROM Besuchdaten WHERE IDAdresse = 1 GROUP BY IDAdresse
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Sqlite und sum
Hi Stargate,
danke für die Antwort.
Ja, ich brauch die GesamtKM nur beim anklicken, alles andere sind zu viele Zahlen, und unnötig.
folgende Datenbanken
Adresse hat folgende Spalten
ID, Name, Adresse, ort, km
Besuchdaten hat folgende
ID, BesuchAdresseid, Datum, km
ich habe jetzt folgenden Code
Das Ergebiss ist aber immer 0. Was mache ich jetzt noch falsch ?
Gruß
gnaps
danke für die Antwort.
Ja, ich brauch die GesamtKM nur beim anklicken, alles andere sind zu viele Zahlen, und unnötig.
folgende Datenbanken
Adresse hat folgende Spalten
ID, Name, Adresse, ort, km
Besuchdaten hat folgende
ID, BesuchAdresseid, Datum, km
ich habe jetzt folgenden Code
Code: Alles auswählen
GesamtkilometerAdresse.i=DatabaseQuery(#DB,"Select sum(km) from Besuchdaten where BesuchAdresseid = "+Str(IDAdresse.i)+" GROUP BY BesuchAdresseid" )
Debug GesamtkilometerAdresse.i
Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: Sqlite und sum
gnaps hat geschrieben:Das Ergebiss ist aber immer 0. Was mache ich jetzt noch falsch ?Code: Alles auswählen
GesamtkilometerAdresse.i=DatabaseQuery(#DB,"Select sum(km) from Besuchdaten where BesuchAdresseid = "+Str(IDAdresse.i)+" GROUP BY BesuchAdresseid" ) Debug GesamtkilometerAdresse.i
Code: Alles auswählen
If DatabaseQuery(#DB,"Select sum(km) from Besuchdaten where BesuchAdresseid = "+Str(IDAdresse.i)+" GROUP BY BesuchAdresseid" )
NextDatabaseRow(#DB)
GesamtkilometerAdresse = GetDatabaseLong(#DB, 0)
Debug GesamtkilometerAdresse
[...]
a²+b²=mc²
Re: Sqlite und sum
gnaps hat geschrieben:Das Ergebiss ist aber immer 0. Was mache ich jetzt noch falsch ?Code: Alles auswählen
GesamtkilometerAdresse.i=DatabaseQuery() Debug GesamtkilometerAdresse.i
Naja, wenn sein Rückgabewert von oben 0 ist, dann wird der Code nicht funktionieren, weil der If-block gar nicht erst betreten wird.Kiffi hat geschrieben:IF DatabaseQuery()
Für solche Fälle gibt's eigentlich sowas wie GetLastDBError(). Musst mal schauen ob es dafür ein Äquivalent in PB gibt. Wenn die Query nicht richtig formatiert ist, gibt's logischerweise auch kein Ergebnis, das man aus auslesen könnte.
Signatur und so
Re: Sqlite und sum
öhm, verstehe ich jetzt nicht. IMO sollte der Rückgabewert von DataBaseQuery() immer ausgewertet werden.Derren hat geschrieben:Naja, wenn sein Rückgabewert von oben 0 ist, dann wird der Code nicht funktionieren, weil der If-block gar nicht erst betreten wird.
DataBaseQuery: Returns nonzero if the query was successful or zero if it failed
Code: Alles auswählen
If DatabaseQuery(...
; mit dem Ergebnis der Abfrage weiterarbeiten...
Else
; Fehlerbehandler. Evtl. DatabaseError() ausgeben lassen
EndIf
a²+b²=mc²
Re: Sqlite und sum
@Derren
Du musst natürlich die SQL Abfrage an deine Tabelle anpassen.
Heißt die eine Spalte wirklich "BesuchAdresseid" ??
Du musst natürlich die SQL Abfrage an deine Tabelle anpassen.
Heißt die eine Spalte wirklich "BesuchAdresseid" ??
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Sqlite und sum
Stargate: Ich hab nix getestet. Aber bei OP scheint's ja nicht zu klappen. Daran ändert der weiterführende Code auch nichts.
Kiffi: Ja, eben. Den Rückgabewert "debuggen" ist doch ein logischer Schritt, wenn die Auswertung fehl schlägt.
"Debug DatabaseQuery()" gibt doch ganz offensichtlich "0" aus. Von daher ist dein Code natürlich lieb gemeint, hilft ihm aber auch nicht weiter. Weil er gar nicht ausgeführt wird.
Kiffi: Ja, eben. Den Rückgabewert "debuggen" ist doch ein logischer Schritt, wenn die Auswertung fehl schlägt.
"Debug DatabaseQuery()" gibt doch ganz offensichtlich "0" aus. Von daher ist dein Code natürlich lieb gemeint, hilft ihm aber auch nicht weiter. Weil er gar nicht ausgeführt wird.
Signatur und so