Hallo Leute,
ich habe hier eine SQLDatenbank und alles Funktioniert bestens.
Jetzt benötige ich aber eine Liste über offene Tagesabschlüsse.
Das heißt
in meine DB sind mehrer Datensätze mit dem gleichen Datum
aber in meinem ListIconGadget soll der Tag nur einmal angezeigt werden.
Beispiel
meine Datensätze
01.03.2016 .......
01.03.2016 ........
01.03.2016 ........
02.03.2016 ........
03.03.2016 ........
03.03.2016 ........
04.03.2016 ........
04.03.2016 ........
05.03.2016 ........
in meinem ListiconGadget soll dann nur
01.03.2016 ........
02.03.2016 ........
03.03.2016 ........
04.03.2016 ........
05.03.2016 ........
stehen
wie löse ich so was, kann mir mal einer eine Schups in die richtige Richtung geben
Schon jetzt besten Dank
Gruß gnaps
SQlite nur ein Ausgabe pro Datum
SQlite nur ein Ausgabe pro Datum
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: SQlite nur ein Ausgabe pro Datum
mit Group By. Mehr schubsen kann ich nicht, weil zu wenig Informationen vorliegen.
Grüße ... Peter
Grüße ... Peter
Hygge
Re: SQlite nur ein Ausgabe pro Datum
Hi danke für Deine Antwort,
hier nochmals Details
Meine Datenbank hat den Tabellennamen Kasse,
ich habe hier 22 Spalten, die 8 Spalte beinhaltet das Datum und die 22 Spalte ist mein Abschluss.
Bei Abschluss gibt es nur 2 Werte.
0 = offen
1 = abgeschlossen.
Meine Daten
01.03.2016 .......0
01.03.2016 ........0
01.03.2016 ........0
02.03.2016 ........1
03.03.2016 ........1
03.03.2016 ........1
04.03.2016 ........0
04.03.2016 ........0
05.03.2016 ........1
in meinem ListiconGadget soll dann nur
01.03.2016 offen
02.03.2016 abgeschlossen
03.03.2016 abgeschlossen
04.03.2016 offen
05.03.2016 abgeschlossen
stehen
keine Berechnung keine summen keine gruppierungen.
Nur eine Ausgebe das z.B. am 01.03.2016 Abrechnungen vorliegen und diese noch offen sind.
Das ganze muss ich dann noch in einem Datumsbereich eingrenzen.
Meine SQL-Anweidung
sqlanweisung.s="Select * from Kasse WHERE "+SQLKasseTabellenName.s(8)+" >= '"+AuswertungDatumBeginn.l+"' And "+SQLKasseTabellenName.s(8)+" <= '"+AuswertungDatumEnde.l+"' order by id desc"
im Listicon stehen dann folgende Einträge
01.03.2016 ........offen
01.03.2016 ........offen
01.03.2016 ........offen
02.03.2016 ........abgeschlossen
03.03.2016 ........abgeschlossen
03.03.2016 ........abgeschlossen
04.03.2016 ........offen
04.03.2016 ........offen
05.03.2016 ........abgeschlossen
stimmt ja nach meiner Abfrage von oben.
ich möchte jedoch jeden Tag nur einmal in der Liste stehen haben.
01.03.2016 ........offen
02.03.2016 ........abgeschlossen
03.03.2016 ........abgeschlossen
04.03.2016 ........offen
05.03.2016 ........abgeschlossen
ich hoffe das ist verständlicher
Gruß
gnaps
hier nochmals Details
Meine Datenbank hat den Tabellennamen Kasse,
ich habe hier 22 Spalten, die 8 Spalte beinhaltet das Datum und die 22 Spalte ist mein Abschluss.
Bei Abschluss gibt es nur 2 Werte.
0 = offen
1 = abgeschlossen.
Meine Daten
01.03.2016 .......0
01.03.2016 ........0
01.03.2016 ........0
02.03.2016 ........1
03.03.2016 ........1
03.03.2016 ........1
04.03.2016 ........0
04.03.2016 ........0
05.03.2016 ........1
in meinem ListiconGadget soll dann nur
01.03.2016 offen
02.03.2016 abgeschlossen
03.03.2016 abgeschlossen
04.03.2016 offen
05.03.2016 abgeschlossen
stehen
keine Berechnung keine summen keine gruppierungen.
Nur eine Ausgebe das z.B. am 01.03.2016 Abrechnungen vorliegen und diese noch offen sind.
Das ganze muss ich dann noch in einem Datumsbereich eingrenzen.
Meine SQL-Anweidung
sqlanweisung.s="Select * from Kasse WHERE "+SQLKasseTabellenName.s(8)+" >= '"+AuswertungDatumBeginn.l+"' And "+SQLKasseTabellenName.s(8)+" <= '"+AuswertungDatumEnde.l+"' order by id desc"
im Listicon stehen dann folgende Einträge
01.03.2016 ........offen
01.03.2016 ........offen
01.03.2016 ........offen
02.03.2016 ........abgeschlossen
03.03.2016 ........abgeschlossen
03.03.2016 ........abgeschlossen
04.03.2016 ........offen
04.03.2016 ........offen
05.03.2016 ........abgeschlossen
stimmt ja nach meiner Abfrage von oben.
ich möchte jedoch jeden Tag nur einmal in der Liste stehen haben.
01.03.2016 ........offen
02.03.2016 ........abgeschlossen
03.03.2016 ........abgeschlossen
04.03.2016 ........offen
05.03.2016 ........abgeschlossen
ich hoffe das ist verständlicher
Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: SQlite nur ein Ausgabe pro Datum
joh, wie geschrieben: Group By
Grüße ... Peter
Code: Alles auswählen
UseSQLiteDatabase()
DB = OpenDatabase(#PB_Any, ":memory:", "", "", #PB_Database_SQLite)
DatabaseUpdate(DB, "Create Table Kasse (Datum, Abschluss)")
DatabaseUpdate(DB, "Insert Into Kasse (Datum, Abschluss) Values ('01.03.2016', 0)")
DatabaseUpdate(DB, "Insert Into Kasse (Datum, Abschluss) Values ('01.03.2016', 0)")
DatabaseUpdate(DB, "Insert Into Kasse (Datum, Abschluss) Values ('01.03.2016', 0)")
DatabaseUpdate(DB, "Insert Into Kasse (Datum, Abschluss) Values ('02.03.2016', 1)")
DatabaseUpdate(DB, "Insert Into Kasse (Datum, Abschluss) Values ('03.03.2016', 1)")
DatabaseUpdate(DB, "Insert Into Kasse (Datum, Abschluss) Values ('03.03.2016', 1)")
DatabaseUpdate(DB, "Insert Into Kasse (Datum, Abschluss) Values ('04.03.2016', 0)")
DatabaseUpdate(DB, "Insert Into Kasse (Datum, Abschluss) Values ('04.03.2016', 0)")
DatabaseUpdate(DB, "Insert Into Kasse (Datum, Abschluss) Values ('05.03.2016', 1)")
DatabaseQuery(DB, "Select * From Kasse Group By Datum")
While NextDatabaseRow(DB)
Debug GetDatabaseString(DB, 0) + ": " + GetDatabaseString(DB, 1)
Wend
Hygge
Re: SQlite nur ein Ausgabe pro Datum
Hi Kiffi,
jo, genau so wollte ich das haben, passt perfekt, vielen Dank.
Gruß
gnaps
jo, genau so wollte ich das haben, passt perfekt, vielen Dank.
Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: SQlite nur ein Ausgabe pro Datum
Hallo Kiffi,
leider habe ich mich zu früh gefreut.
Das oben besprochene funktioniert.
Jedoch habe ich ein erneutes Problem.
Mein Programm ist eine Kassensoftware.
Ich habe in meiner SQLite auch noch die Tabellen
"BanK" für Bankeinzahlungen aus der Kasse
und
"Ausgaben" für Ausgaben aus der Kasse
für den Tagesabschluss der Kasse müssen auch diese Datensätze berücksichtigt werden.
Das Problem ist
es können Bankeinzahlungen oder Ausgaben vorhanden sein ohne das Kasseneingänge vorhanden sind.
Daher haben die Bankeinzahlungen oder die Ausgaben ein anderes Datum wie der Kasseneingang.
Jetzt muss ich die Datenbank noch abfragen ob im Datumsbereich eine Bankeinzahlung oder eine Ausgabe vorhanden ist.
Das ist ja kein Problem.
Aber wie bekomme ich das Datum der offenen Bankeinzahlung oder der Ausgabe in die richtige Reihenfolge in mein
ListIconGadget.
Ja, ganz schön verzwickt das ganze, aber leider brauche ich auch hier eine Lösung.
Mein Gedanke ist eine SQLite-Datenbank im Speicher in der ich alle gefunden Daten einfüge diese dann sortiere
und gruppiere und in das ListIconGadget einfüge.
Wie mache ich so etwas.
Freue mich schon auf deinen Schubser.
Gruß
gnaps
leider habe ich mich zu früh gefreut.
Das oben besprochene funktioniert.
Jedoch habe ich ein erneutes Problem.
Mein Programm ist eine Kassensoftware.
Ich habe in meiner SQLite auch noch die Tabellen
"BanK" für Bankeinzahlungen aus der Kasse
und
"Ausgaben" für Ausgaben aus der Kasse
für den Tagesabschluss der Kasse müssen auch diese Datensätze berücksichtigt werden.
Das Problem ist
es können Bankeinzahlungen oder Ausgaben vorhanden sein ohne das Kasseneingänge vorhanden sind.
Daher haben die Bankeinzahlungen oder die Ausgaben ein anderes Datum wie der Kasseneingang.
Jetzt muss ich die Datenbank noch abfragen ob im Datumsbereich eine Bankeinzahlung oder eine Ausgabe vorhanden ist.
Das ist ja kein Problem.
Aber wie bekomme ich das Datum der offenen Bankeinzahlung oder der Ausgabe in die richtige Reihenfolge in mein
ListIconGadget.
Ja, ganz schön verzwickt das ganze, aber leider brauche ich auch hier eine Lösung.
Mein Gedanke ist eine SQLite-Datenbank im Speicher in der ich alle gefunden Daten einfüge diese dann sortiere
und gruppiere und in das ListIconGadget einfüge.
Wie mache ich so etwas.
Freue mich schon auf deinen Schubser.
Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
- NicTheQuick
- Ein Admin
- Beiträge: 8679
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: SQlite nur ein Ausgabe pro Datum
Ich weiß nicht, ob SQLite das kann, aber bei SQL gibt es UNION.
Re: SQlite nur ein Ausgabe pro Datum
Du kannst auch eine Abfrage mit Select über mehrere Tabellen machen ... allerdings ohne Kenntnis der Tabellen kann ich nichts genaueres sagen ...
Bsp: Select kasse.datum, kasse.abschluss, bank.datum, bank.waswaeisich from kasse, bank where kasse.datum=bank.datum group by kasse.datum ASC;
Bsp: Select kasse.datum, kasse.abschluss, bank.datum, bank.waswaeisich from kasse, bank where kasse.datum=bank.datum group by kasse.datum ASC;