Sqlite und sum
Re: Sqlite und sum
was ist OP?
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 Leute,
habe immer noch 0.
bei folgendem Code
Debugfenster zeigt OK und 0.
Stargate: ich habe die Spalte IDAdresse auf BesuchAdresseid geändert.
habe immer noch 0.
bei folgendem Code
Code: Alles auswählen
If DatabaseQuery(#DB,"Select sum(km) from Besuchdaten where BesuchAdresseid = "+Str(IDAdresse.i)+" GROUP BY BesuchAdresseid" )
NextDatabaseRow(#DB)
GesamtkilometerAdresse.l=GetDatabaseLong(#DB,0)
Debug "OK"
Debug GesamtkilometerAdresse.l
Else
Debug DatabaseError()
EndIf
Stargate: ich habe die Spalte IDAdresse auf BesuchAdresseid geändert.
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: Sqlite und sum
Derren hat geschrieben: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.

gnaps ging ja davon aus, dass DatabaseQuery() die Summe der Kilometer zurückgibt. In meinem Posting habe ich darauf hingewiesen, dass dem nicht so ist.
Grüße ... Kiffi
a²+b²=mc²
Re: Sqlite und sum
Hi Leute,
was mich hier stutzig macht ist
Speziell die GetDatabaseLong(#DB,0) Anweisung auf die Spalte 0.
Wiso 0. Welche Spalte 0.
Sorry, verstehe das nicht.
Gruß
gnaps
was mich hier stutzig macht ist
Code: Alles auswählen
GesamtkilometerAdresse.l=GetDatabaseLong(#DB,0)
Wiso 0. Welche Spalte 0.
Sorry, verstehe das nicht.
Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: Sqlite und sum
OP = Original Poster in dem Fall gnaps.
Kiffi, DU hast nichts von Debug geschrieben, aber gnaps schon.
steht überhaupt nicht ausgeführt.
Du hast ja selber die Hilfe zitiert. Gibt bei Erfolg einen Wert ungleich 0 zurück. Falls die Funktion fehlschlägt wird 0 zurückgegeben. Und das scheint hier der Fall zu sein. Also ist die Query einfach nicht richtig.
Stargate hat das Problem erkannt, aber an mich adressiert und nicht an gnaps.
Kiffi, DU hast nichts von Debug geschrieben, aber gnaps schon.
Was gibt's daran nicht zu verstehen? Der Rückgabewert von DatabaseQuery ist NULL. Also wird alles was nachich habe jetzt folgenden CodeDas 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(
Du hast ja selber die Hilfe zitiert. Gibt bei Erfolg einen Wert ungleich 0 zurück. Falls die Funktion fehlschlägt wird 0 zurückgegeben. Und das scheint hier der Fall zu sein. Also ist die Query einfach nicht richtig.
Stargate hat das Problem erkannt, aber an mich adressiert und nicht an gnaps.
@Derren
Du musst natürlich die SQL Abfrage an deine Tabelle anpassen.
Heißt die eine Spalte wirklich "BesuchAdresseid" ??
Signatur und so
Re: Sqlite und sum
@Derren: Ich glaube, heute kommen wir nicht mehr auf einen grünen Zweig. 
@gnaps: Habe mal folgenden Beispielcode zusammengebastelt. Bei mir wird '90' (Kilometer) ausgegeben. Vielleicht hast Du noch einen Knoten in Deinem Code?

@gnaps: Habe mal folgenden Beispielcode zusammengebastelt. Bei mir wird '90' (Kilometer) ausgegeben. Vielleicht hast Du noch einen Knoten in Deinem Code?
Code: Alles auswählen
EnableExplicit
Define DB
Define IDAdresse
Define GesamtkilometerAdresse
UseSQLiteDatabase()
DB = OpenDatabase(#PB_Any, ":memory:", "", "", #PB_Database_SQLite)
DatabaseUpdate(DB, "Create Table Besuchdaten (ID INTEGER, BesuchAdresseid INTEGER, Datum TEXT, km INTEGER)")
DatabaseUpdate(DB, "Insert Into Besuchdaten (ID, BesuchAdresseid, Datum, km) Values (1, 1, '01.01.2013', 10)")
DatabaseUpdate(DB, "Insert Into Besuchdaten (ID, BesuchAdresseid, Datum, km) Values (2, 1, '02.01.2013', 20)")
DatabaseUpdate(DB, "Insert Into Besuchdaten (ID, BesuchAdresseid, Datum, km) Values (3, 1, '03.01.2013', 30)")
DatabaseUpdate(DB, "Insert Into Besuchdaten (ID, BesuchAdresseid, Datum, km) Values (4, 2, '04.01.2013', 40)")
DatabaseUpdate(DB, "Insert Into Besuchdaten (ID, BesuchAdresseid, Datum, km) Values (5, 2, '05.01.2013', 50)")
IDAdresse = 2
If DatabaseQuery(DB, "Select Sum(km) From Besuchdaten Where BesuchAdresseid = " + Str(IDAdresse))
NextDatabaseRow(DB)
GesamtkilometerAdresse = GetDatabaseLong(DB, 0)
Debug "OK"
Debug GesamtkilometerAdresse
Else
Debug DatabaseError()
EndIf
a²+b²=mc²
Re: Sqlite und sum
Hi Leute,
es war mein Fehler !
Ich habe die Spalten meiner Tabelle ohne klare Deklaration (String,Integer usw.) erstellt.
Habe das ganze nun gerichtet und schon klappt es
Danke Kiffi, dein Code hat mich geweckt.
Sorry und Danke an alle.
Gruß gnaps
es war mein Fehler !
Ich habe die Spalten meiner Tabelle ohne klare Deklaration (String,Integer usw.) erstellt.
Habe das ganze nun gerichtet und schon klappt es
Danke Kiffi, dein Code hat mich geweckt.
Sorry und Danke an alle.
Gruß gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: Sqlite und sum
daran kann es nicht gelegen haben. SQLite ist ein DB-System,gnaps hat geschrieben:Ich habe die Spalten meiner Tabelle ohne klare Deklaration (String,Integer usw.) erstellt.
bei dem man die Deklaration auch weglassen kann. Deswegen
gefällt mir SQLite auch so sehr.

Code: Alles auswählen
DatabaseUpdate(DB, "Create Table Besuchdaten (ID, BesuchAdresseid, Datum, km)")
Aber egal! Wenn es jetzt funktioniert, dann

Grüße ... Kiffi
a²+b²=mc²
Re: Sqlite und sum
Hi Leute,
ich muss hier noch einmal eine Frage stellen, hat aber mit dem vorhergehenden nichts zu tun.
Ich habe in meiner Tabelle Besuchdaten ja die Spalte Datum.
Das Datum speichere ich als ganze Zahl z.B. 1385769600 = 30.11.2013.
Ich möchte Auswertungen definieren die mir folgendes auswerfen.
Besuche aktuelle Woche
Besuche letzte Woche
Besuche aktueller Monat
Besuche letzter Monat
Besuche aktuelles Quartal
Besuche letztes Quartal
ist das möglich ?
Gruß
Gnaps
ich muss hier noch einmal eine Frage stellen, hat aber mit dem vorhergehenden nichts zu tun.
Ich habe in meiner Tabelle Besuchdaten ja die Spalte Datum.
Das Datum speichere ich als ganze Zahl z.B. 1385769600 = 30.11.2013.
Ich möchte Auswertungen definieren die mir folgendes auswerfen.
Besuche aktuelle Woche
Besuche letzte Woche
Besuche aktueller Monat
Besuche letzter Monat
Besuche aktuelles Quartal
Besuche letztes Quartal
ist das möglich ?
Gruß
Gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: Sqlite und sum
Hi Kiffi,
das dachte ich auch, desshalb habe ich nie eine Deklaration angegeben.
Komisch ist, ich habe den Code nicht geändert sondern nur mit einem SQL-Browser
meiner Km Spalte den "Integer" gegeben und dann ging es.
Danke nochmals, Du hast mir sehr geholfen.
Beachte auch mein Post voran, hast Du eine Idee?
Gruß
gnaps
das dachte ich auch, desshalb habe ich nie eine Deklaration angegeben.
Komisch ist, ich habe den Code nicht geändert sondern nur mit einem SQL-Browser
meiner Km Spalte den "Integer" gegeben und dann ging es.
Danke nochmals, Du hast mir sehr geholfen.
Beachte auch mein Post voran, hast Du eine Idee?
Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)