Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
Delphi 8 Professional
|
Re: aktuelles Mwst.-Problem [SQL]
8. Sep 2005, 12:37
An den Doppelpunkten liegts echt nicht. Ich habe den Fehler eingekreist :
SQL-Code:
CREATE TABLE MWST8 (
ID INTEGER NOT NULL,
ABDATUM DATE,
MWSTSATZ SMALLINT,
MWSTWERT DECIMAL(15,2),
ANGELEGT TIMESTAMP,
LETZTEAENDERUNG TIMESTAMP
);
INSERT INTO MWST8 (ID, ABDATUM, MWSTSATZ, MWSTWERT, ANGELEGT, LETZTEAENDERUNG) VALUES (1, '1998-04-01', 2, 16, '2005-09-03 12:26:31', NULL);
INSERT INTO MWST8 (ID, ABDATUM, MWSTSATZ, MWSTWERT, ANGELEGT, LETZTEAENDERUNG) VALUES (2, '1998-04-01', 1, 7, '2005-09-03 12:26:47', NULL);
INSERT INTO MWST8 (ID, ABDATUM, MWSTSATZ, MWSTWERT, ANGELEGT, LETZTEAENDERUNG) VALUES (3, '2005-04-01', 2, 18, '2005-04-01 00:00:00', '2005-09-04 16:50:21');
INSERT INTO MWST8 (ID, ABDATUM, MWSTSATZ, MWSTWERT, ANGELEGT, LETZTEAENDERUNG) VALUES (4, '1900-01-01', 2, 15, '2005-09-03 13:55:15', NULL);
COMMIT WORK;
/******************************************************************************/
/**** Stored Procedures ****/
/******************************************************************************/
SET TERM ^ ;
ALTER PROCEDURE MWSTWERTSP8 (
MONAT SMALLINT,
JAHR SMALLINT,
MWSTSATZ SMALLINT)
RETURNS (
MWSTWERT NUMERIC(9,2))
AS
DECLARE VARIABLE DATUM DATE;
BEGIN
DATUM = CAST('01.'|| MONAT || '.' || JAHR AS DATE);
SELECT FIRST 1
MWSTWERT
FROM
MWST8
WHERE
(MWSTSATZ=:MWSTSATZ) AND (ABDATUM <= :DATUM)
ORDER BY
ABDATUM DESC
INTO
:MWSTWERT;
IF (MWSTSATZ is null) THEN
MWSTSATZ = 0;
MWSTWERT = 10; <-------------------------------------------
SUSPEND;
END
^
Setze ich den MWSTWERT von Hand auf 10 (siehe oben), dann stimmt auch der Bruttoumsatz auf der Grundlage von 10 % Mwst. Die verwendeten Testdaten sind auch dabei. Gebe ich 100 ein so kommt 110 dabei raus. Mache ich das nochmals dann ist es 220. Also richtig. Lasse ich den MWSTWERT von der SP ermitteln, ohne diese Zeile, dann gehts nicht. 8)
Gruß
Hansa
|