![]() |
Re: aktuelles Mwst.-Problem [SQL]
Hallo Alex,
mit oder ohne colon ist in IB6 egal - ist das beim FB15 anders? Mit colon ist irgenwie konsistenter, er signalisiert ja sowas wie eine Dereferenzierung - den Zugriff auf den Inhalt. Freundliche Grüße vom marabu |
Re: aktuelles Mwst.-Problem [SQL]
An den Doppelpunkten liegts echt nicht. Ich habe den Fehler eingekreist :
SQL-Code:
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)
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 ^ |
Re: aktuelles Mwst.-Problem [SQL]
Hi marabu,
Zitat:
colon nicht gesetzt. Im Gegensatz zu SELECT/UPDATE/INSERT.. -statements. Zitat:
Die SP läßt sich zwar im Falle von Hansa compilieren, aber bei Verwendung des Doppelpunktes ist ":UMSATZ" gleich NULL. Damit ist auch das Ergebnis der Zuweisung gleich NULL. VAR_UMSATZBRUTTO = NULL * (1 + VAR_MWSTWERT / 100) --> NULL alex |
Re: aktuelles Mwst.-Problem [SQL]
Alex, da steht "need not" und nicht "must not". Ich habe mir die Verwendung des colon auch in assignments aus dem angegebenen Grund angewöhnt. Sobald der Parser geändert wird, werde ich es mir wieder abgewöhnen müssen, aber bis dahin: es funktioniert bei mir.
marabu |
Re: aktuelles Mwst.-Problem [SQL]
Hansa, du solltest vielleicht Namensüberdeckungen vermeiden:
SQL-Code:
marabu (getippt und nicht getestet)
CREATE PROCEDURE MWSTWERTSP8 (
iMONAT SMALLINT, iJAHR SMALLINT, iMWSTSATZ SMALLINT ) RETURNS ( oMWSTWERT NUMERIC(9,2) ) AS DECLARE VARIABLE vDATUM DATE; DECLARE VARIABLE vMWSTWERT NUMERIC(9,2); BEGIN vDATUM = CAST('01.'|| iMONAT || '.' || iJAHR AS DATE); SELECT FIRST 1 mwstwert FROM mwst8 WHERE (mwstsatz = :iMWSTSATZ) AND (abdatum <= :vDATUM) ORDER BY abdatum DESC INTO :vMWSTWERT; oMWSTWERT = :vMWSTWERT; SUSPEND; END |
Re: aktuelles Mwst.-Problem [SQL]
Zitat:
In FB ist scheinbar aus dieser "Empfehlung" ein Muß geworden. alex |
Re: aktuelles Mwst.-Problem [SQL]
Alex, wenn das stimmt, dass der FB Parser an der Stelle nicht mehr kompatibel zum IB Parser ist, dann frage ich mich, wie Hansa getestet hat. FB hat er offensichtlich genommen, denn sonst wäre er ja über FIRST gestolpert.
Zitat:
|
Re: aktuelles Mwst.-Problem [SQL]
Hi Hansa, hi marabu,
Ihr habt beide Recht an den Doppelpunkten liegts nicht. Hansa, sieh dir doch mal die Parameterreihenfolge der MWSTWERTSP8-Deklaration und beim Aufruf der MWSTWERTSP8 an:
SQL-Code:
CREATE PROCEDURE MWSTWERTSP8 (
MONAT SMALLINT, JAHR SMALLINT, MWSTSATZ SMALLINT) RETURNS ( MWSTWERT NUMERIC(9,2))
SQL-Code:
alex
SELECT MWSTWERT FROM MWSTWERTSP8 (:MWSTSATZ,:MONAT,:JAHR) INTO :VAR_MWSTWERT;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz