Nummer aus Abfrage generieren

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Nummer aus Abfrage generieren

Re: Nummer aus Abfrage generieren

von Marco Schade » Fr, 21.04.2017 07:47

Hallo R,

vielen lieben Dank, es funktioniert wiedereinmal perfekt.

Danke

Liebe Grüße


Marco

Re: Nummer aus Abfrage generieren

von F3K Total » Mo, 17.04.2017 15:11

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:

Code: Alles auswählen

ALTER TABLE "Rechnung" ALTER "ID" RESTART WITH 20
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.

Code: Alles auswählen

UPDATE "Rechnung" SET ID = ID+1
so werden alle IDs um eins erhöht.
Gruß R
Dateianhänge
Datenbank 15.04.2017.odb
(23.39 KiB) 141-mal heruntergeladen

Re: Nummer aus Abfrage generieren

von Marco Schade » Mo, 17.04.2017 10:33

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
Dateianhänge
Datenbank 15.04.2017.odb
(249.54 KiB) 135-mal heruntergeladen

Re: Nummer aus Abfrage generieren

von Marco Schade » Fr, 14.04.2017 21:27

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
Dateianhänge
Datenbank 14.04.2017.odb
(249.15 KiB) 152-mal heruntergeladen

Re: Nummer aus Abfrage generieren

von F3K Total » Fr, 14.04.2017 01:32

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

von Marco Schade » Do, 13.04.2017 17:59

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

von F3K Total » Do, 13.04.2017 17:08

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

von Marco Schade » Do, 13.04.2017 12:06

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

von F3K Total » Mi, 12.04.2017 18:41

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

von Marco Schade » Di, 11.04.2017 20:39

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

von F3K Total » Di, 11.04.2017 20:22

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

Nummer aus Abfrage generieren

von Marco Schade » Di, 11.04.2017 11:38

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
Dateianhänge
RG-Nr.jpg
RG-Nr.jpg (264.66 KiB) 9081 mal betrachtet

Nach oben