[Gelöst] - Leider nochmal Thema Rechnungsnummer
Verfasst: So 12. Mär 2023, 11:57
Hallo LO Fans,
mache gerade meinen ersten Gehversuche mit LibreBase. Hatte mir mal eine Datenbank mit MS Access aufgebaut um Rechnungen zu erstellen.
Ich weis, das Thema wurde schon oft angesprochen. Hab eine Abfrage gefunden in einer Beispiel_DB.
Die darin enthaltende Beispiel Abfrage hab ich auf meine Datenbank (Tabelle) angepasse. Der SQL Code sieht so aus:
SELECT "Rg_Kopf".*, RIGHT( '00' || MONTH( "Leistungsdatum" ), 2 ) AS "Monat", RIGHT( '000' || ( SELECT COUNT( "ID" ) FROM "Rg_Kopf" WHERE YEAR( "Leistungsdatum" ) = YEAR( "Rg_Kopf"."Leistungsdatum" ) AND MONTH( "Leistungsdatum" ) = MONTH( "Rg_Kopf"."Leistungsdatum" ) AND "ID" <= "Rg_Kopf"."ID" ), 4 ) AS "lfdNrMonat", RIGHT( '000' || MONTH( "Leistungsdatum" ), 4 ) || RIGHT( '00' || ( SELECT COUNT( "ID" ) FROM "Rg_Kopf" WHERE YEAR( "Leistungsdatum" ) = YEAR( "Rg_Kopf"."Leistungsdatum" ) AND MONTH( "Leistungsdatum" ) = MONTH( "Rg_Kopf"."Leistungsdatum" ) AND "ID" <= "Rg_Kopf"."ID" ), 3 ) AS "Monat_lfdNrMonat", RIGHT( '000' || YEAR( "Leistungsdatum" ), 4 ) AS "Jahr", RIGHT( '000' || ( SELECT COUNT( "ID" ) FROM "Rg_Kopf" WHERE YEAR( "Leistungsdatum" ) = YEAR( "Rg_Kopf"."Leistungsdatum" ) AND "ID" <= "Rg_Kopf"."ID" ), 4 ) AS "LfdNrJahr" FROM "Rg_Kopf"
Was ich erreichen wollte, ist die Erstellung einer fortlaufenden Rechnungsnummer pro Monat innerhalb eines Jahres. Kann auch geändert werden in fortlaufend über das ganze Jahr. Das wäre auch ok.
In der Beispiel DB wird korrekt gezählt. Bei meinem Versuch wird nichts hochgezählt sondern nur die Anzahl der vorhandenen Datensätze (hier = 39) angezeigt. Hab mal einen Screenshot angehängt. Ich bin kein SQL Experte und finde nicht wo hier der Fehler liegt.
Kann mir einer helfen?
Mein Ansatz war die durch die Abfrage ermittelte Lfd Nr per Makro in die Tabelle Rg_Kopf in eine Spalte "Rg_Nummer" einzutragen, gesteuert durch ein Formularereignis z. B. "nach Datensatzaktion", während man eine neue Rechnung über ein Formular erfasst, wenn so geht. Anregungen sind willkommen.
Wenn später dann die Rechnung gedruckt werden soll, möchte ich die generierte Rechnungsnummer aus der Tabelle per Abfrage für den Bericht auslesen.
Ist mein Ansatz zielführend?
mache gerade meinen ersten Gehversuche mit LibreBase. Hatte mir mal eine Datenbank mit MS Access aufgebaut um Rechnungen zu erstellen.
Ich weis, das Thema wurde schon oft angesprochen. Hab eine Abfrage gefunden in einer Beispiel_DB.
Die darin enthaltende Beispiel Abfrage hab ich auf meine Datenbank (Tabelle) angepasse. Der SQL Code sieht so aus:
SELECT "Rg_Kopf".*, RIGHT( '00' || MONTH( "Leistungsdatum" ), 2 ) AS "Monat", RIGHT( '000' || ( SELECT COUNT( "ID" ) FROM "Rg_Kopf" WHERE YEAR( "Leistungsdatum" ) = YEAR( "Rg_Kopf"."Leistungsdatum" ) AND MONTH( "Leistungsdatum" ) = MONTH( "Rg_Kopf"."Leistungsdatum" ) AND "ID" <= "Rg_Kopf"."ID" ), 4 ) AS "lfdNrMonat", RIGHT( '000' || MONTH( "Leistungsdatum" ), 4 ) || RIGHT( '00' || ( SELECT COUNT( "ID" ) FROM "Rg_Kopf" WHERE YEAR( "Leistungsdatum" ) = YEAR( "Rg_Kopf"."Leistungsdatum" ) AND MONTH( "Leistungsdatum" ) = MONTH( "Rg_Kopf"."Leistungsdatum" ) AND "ID" <= "Rg_Kopf"."ID" ), 3 ) AS "Monat_lfdNrMonat", RIGHT( '000' || YEAR( "Leistungsdatum" ), 4 ) AS "Jahr", RIGHT( '000' || ( SELECT COUNT( "ID" ) FROM "Rg_Kopf" WHERE YEAR( "Leistungsdatum" ) = YEAR( "Rg_Kopf"."Leistungsdatum" ) AND "ID" <= "Rg_Kopf"."ID" ), 4 ) AS "LfdNrJahr" FROM "Rg_Kopf"
Was ich erreichen wollte, ist die Erstellung einer fortlaufenden Rechnungsnummer pro Monat innerhalb eines Jahres. Kann auch geändert werden in fortlaufend über das ganze Jahr. Das wäre auch ok.
In der Beispiel DB wird korrekt gezählt. Bei meinem Versuch wird nichts hochgezählt sondern nur die Anzahl der vorhandenen Datensätze (hier = 39) angezeigt. Hab mal einen Screenshot angehängt. Ich bin kein SQL Experte und finde nicht wo hier der Fehler liegt.
Kann mir einer helfen?
Mein Ansatz war die durch die Abfrage ermittelte Lfd Nr per Makro in die Tabelle Rg_Kopf in eine Spalte "Rg_Nummer" einzutragen, gesteuert durch ein Formularereignis z. B. "nach Datensatzaktion", während man eine neue Rechnung über ein Formular erfasst, wenn so geht. Anregungen sind willkommen.
Wenn später dann die Rechnung gedruckt werden soll, möchte ich die generierte Rechnungsnummer aus der Tabelle per Abfrage für den Bericht auslesen.
Ist mein Ansatz zielführend?