Seite 1 von 1
Nummer aus Abfrage generieren
Verfasst: Di, 11.04.2017 11:38
von Marco Schade
Hallo Forum,
ich habe es geschafft anhand der ID eine zusätzliche Nummer in einer Abfrage zu generieren (RG.NR)
besteht denn die Möglichkeit das diese RG.Nr noch den Zusatz bekommt aus Spalte "Datum " und zwar nur das Jahr .
Es soll hinterher so aussehen RG-0038/2017
RG-0041/2017
Liebe Grüße
Marco
Re: Nummer aus Abfrage generieren
Verfasst: Di, 11.04.2017 20:22
von F3K Total
Moin,
wenn du die Abfrage hier im SQL Mode gepostet hättest, wäre es einfacher gewesen:
Code: Alles auswählen
'RG-'||REPEAT(0,4-LENGTH("ID"))||"recID"||' / '||YEAR("Datum") AS "RG.Nr"
sollte funktionieren.
Gruß R
Re: Nummer aus Abfrage generieren
Verfasst: Di, 11.04.2017 20:39
von Marco Schade
Hallo R
perfekt, macht was es soll.
Kann man das auch so einstellen , das er im nächsten Jahr wieder bei 1 anfängt
z.Bsp RG-0001/2018
Vielen Dank nochmal
Gruß
Marco
Re: Nummer aus Abfrage generieren
Verfasst: Mi, 12.04.2017 18:41
von F3K Total
Marco Schade hat geschrieben: Di, 11.04.2017 20:39
Kann man das auch so einstellen , das er im nächsten Jahr wieder bei 1 anfängt
Ja, das geht, du kannst von der aktuellen ID die Maximale des Vorjahres abziehen.
Gruß R
Re: Nummer aus Abfrage generieren
Verfasst: Do, 13.04.2017 12:06
von Marco Schade
Hallo R,
danke für die Antwort.
Ich kann die Maximale ID der Jahre auslesen, aber ich bekomm es einfach nicht die Maximale ID des Vorjahres einzeln auszulesen.
Hast Du da einen Tip.
LIebe Grüße Marco
Re: Nummer aus Abfrage generieren
Verfasst: Do, 13.04.2017 17:08
von F3K Total
Alle MAX_IDs aller Jahre:
Code: Alles auswählen
SELECT MAX( "ID" ) "MAX_ID", YEAR( "Datum" ) "MAX_YEAR" FROM "Tabelle1" GROUP BY YEAR( "Datum" )
Gruß R
Re: Nummer aus Abfrage generieren
Verfasst: Do, 13.04.2017 17:59
von Marco Schade
Hallo R,
das habe ich schon hinbekommen nur den Vorschlag von dir von der aktuellen ID die Maximale des Vorjahres abziehen , das will nicht funktionieren
Marco Schade hat geschrieben: ↑
Di, 11.04.2017 20:39
Kann man das auch so einstellen , das er im nächsten Jahr wieder bei 1 anfängt
Ja, das geht, du kannst von der aktuellen ID die Maximale des Vorjahres abziehen.
Liebe Grüße
Marco
Re: Nummer aus Abfrage generieren
Verfasst: Fr, 14.04.2017 01:32
von F3K Total
Marco Schade hat geschrieben: Do, 13.04.2017 17:59
... das will nicht funktionieren
Tja, das ist ja blöd, geht aber.
Vielleicht läßt du uns an deinen Versuchen teilhaben, und lädst sie hier hoch, dann mag dir vielleicht jemand einen weiteren Tipp geben?
Ohne erkennbare Eigeninitiative deinerseits, bin ich wenig motiviert.
Gruß R
Re: Nummer aus Abfrage generieren
Verfasst: Fr, 14.04.2017 21:27
von Marco Schade
Hallo R ,
Ja ich kann dich verstehen,
Ich habe die Beispieldatei mal angehangen in Abfrage Rechnung2 Habe ich die höchste ID des Jahres ausgelesen, ab er ich weis nicht, wie ich die ID des Vorjahres absprechen soll und die in die Formel
Code: Alles auswählen
'RG-' || REPEAT( 0, 4 - LENGTH( "ID" ) ) || "ID" || ' / ' || YEAR( "Datum" )
einbauen soll .
Liebe Grüße Marco
Re: Nummer aus Abfrage generieren
Verfasst: Mo, 17.04.2017 10:33
von Marco Schade
Hallo zusammen,
ich habe es jetzt geschafft die höchste ID des Vorjahres auszulesen , jetzt habe ich nur leider keine Idee , wie ich die höchste Id des Vorjahres abziehen kann in Abhängigkeit vom Datum. Damit die Rechnungsnummer im neuen Jahr wieder bei 1 beginnt.
Über eure Hilfe würde ich mich sehr freuen
Liebe Grüße Marco
Re: Nummer aus Abfrage generieren
Verfasst: Mo, 17.04.2017 15:11
von F3K Total
Es geht schrittweise:
1. Abfrage für das Vorjahr
01_RECHNUNGEN
Code: Alles auswählen
SELECT "ID", "Datum", YEAR( "Datum" ) - 1 AS "LAST_YEAR" FROM "Rechnung"
2. Abfrage für die höchste Rechnungsnummer je Jahr
02_MAX_YEAR_ID
Code: Alles auswählen
SELECT MAX( "ID" ) "MAX_ID", YEAR( "Datum" ) "MAX_YEAR" FROM "Rechnung" GROUP BY YEAR( "Datum" )
3. Erzeugung der Rechnungsnummern
03_RECHNUNGSNUMMERN
Code: Alles auswählen
SELECT
"ID",
'RG-' || REPEAT( 0, 4 - LENGTH( "ID" - IFNULL( "MAX_ID", 0 ) ) ) || "ID" - IFNULL( "MAX_ID", 0 ) || '/' || YEAR( "Datum" ) AS "RG.Nr."
FROM
"01_RECHNUNGEN"
LEFT OUTER JOIN
"02_MAX_YEAR_ID"
ON
"LAST_YEAR" = "MAX_YEAR"
4. Beschreibbare Abfrage der Rechnungen mit Rechnungsnummer
04_RECHNUNGSNUMMERN_BESCHREIBBAR
Code: Alles auswählen
SELECT
"ID",
"Datum",
"KundeID",
"ZahlDatum",
"Gedruckt",
"Rechnungsbetrag",
"Rabatt%",
( SELECT "RG.Nr." FROM "03_RECHNUNGSNUMMERN" WHERE "ID" = "Rechnung"."ID" ) AS "RG.Nr"
FROM
"Rechnung"
Damit das ganze funktioniert, darf keine ID fehlen, wie in deiner DB, in der nach der 16 die 82 kommt. Das passiert wenn man bereits erzeugte Datensätze löscht, die Auto ID zählt weiter hoch.
Korrigieren kann man das über Extras/SQL... z.B. so:
wobei die 20 die nächste ID ist, und genau eins größer als die letzte ID.
Ausserdem sollte die ID bei 1 beginnen, damit die erste Rechnungsnummer auch die 0001 ist.
so werden alle IDs um eins erhöht.
Gruß R
Re: Nummer aus Abfrage generieren
Verfasst: Fr, 21.04.2017 07:47
von Marco Schade
Hallo R,
vielen lieben Dank, es funktioniert wiedereinmal perfekt.
Danke
Liebe Grüße
Marco