@mkinzler
Zitat:
Oder ganz ohne lokale Variablen
Wäre schön gewesen doch bekomme ich das so nicht hin, da ja die Suchanfrage für die bisher vergebenen Nummern mit den Werten von Monat und Jahr gefüllt werden muss. Ich versuche mal folgendes.
SQL-Code:
SET TERM ^ ;
CREATE PROCEDURE GetNUMBER RETURNS (NEWNUMBER VARCHAR(10)) AS
DECLARE VARIABLE lyear VARCHAR(4);
DECLARE VARIABLE lmonth VARCHAR(2);
DECLARE VARIABLE lid VARCHAR(2);
BEGIN
/* Jahr und Monat für die Suche ermitteln */
SELECT EXTRACT(YEAR FROM CURRENT_TIMESTAMP) INTO :lyear FROM RDB$DATABASE;
SELECT EXTRACT(MONTH FROM CURRENT_TIMESTAMP) INTO :lmonth FROM RDB$DATABASE;
/* Suche Anzahl der bisher in Jahr+Monat erstellten Rechnungen */
SELECT COUNT(RNUMBER) FROM Rechnungen WHERE (RNUMBER LIKE (lyear||lmonth||'%')) INTO :lid;
/* Setze neue Rechnungsnummer zusammen */
SELECT lyear||lmonth||lid INTO :NEWNUMBER;
SUSPEND;
END
^
COMMIT WORK ^
SET TERM ;^
Human are Human to make mistakes.