Thema: Delphi Ersatz für DISTINCT ??

Einzelnen Beitrag anzeigen

Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#26

Re: Ersatz für DISTINCT ??

  Alt 4. Aug 2006, 15:16
Hallo,

ich komme zwar etwas spät, aber vielleicht vereinfacht mein Verfahren doch einiges:
Füge in die Tabelle ein Feld DATUM_BIS ein, z.B:
Zitat von Hansa:
MWSTSATZ ABDATUM DATUM_BIS MWSTWERT_OUT
0 01.01.1900 31.12.2999 0
1 01.01.1980 31.12.2999 7
2 01.01.1980 31.03.1998 15
2 01.04.1998 31.12.2006 16
2 01.01.2007 31.12.2999 19
Das erleichtert die gewünschte Abfrage ungemein:
SQL-Code:
CREATE PROCEDURE ERMITTLE_ALLEMWSTSP ( ABDATUM DATE)
RETURNS (
    ID_OUT INTEGER,
    MWSTSATZ_OUT INTEGER,
    ABDATUM_OUT DATE,
    MWSTWERT_OUT DECIMAL(15,2))
AS begin
  FOR SELECT ID,MWSTSATZ,ABDATUM, MWSTWERT FROM MWST WHERE :ABDATUM BETWEEN ABDATUM AND DATUM_BIS
  ORDER BY MWSTSATZ
  INTO :ID_OUT,:MWSTSATZ_OUT,:ABDATUM_OUT,:MWSTWERT_OUT
  DO
  SUSPEND;
end^
Damit wird die Änderung der MWSt-Sätze etwas erschwert, aber auch das geht in einer Stored Procedure, wenn sie auch mit Fallunterscheidungen arbeiten muss (neuer MWSt-Satz z.B. für Luxuswaren, Änderung des Geltungsbereichs). Wenn das gewünscht wird, kann ich meine Lösung mitliefern.

Übrigens scheint es mir einfacher zu sein, den MWSt-Satz als integer = Promille zu verwenden. Aber das ist sekundär (vielleicht gibt es aber auch MWSt-Sätze wie 7,25% - dann geht das natürlich nicht).

Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat