AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQL: Umsatz je Jahr ohne Lücken ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

SQL: Umsatz je Jahr ohne Lücken ermitteln

Ein Thema von BlueStarHH · begonnen am 25. Feb 2018 · letzter Beitrag vom 26. Feb 2018
 
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#7

AW: SQL: Umsatz je Jahr ohne Lücken ermitteln

  Alt 26. Feb 2018, 12:55
Es ist oft sinnvoll komplexe Abfragen für die Anwendungsfälle hinter einer DB-Prozedur oder View zu verstecken.
Damit können spätere Änderungen oder Optimierungen am DB-Design vorgenommen werden, ohne das auch die Anwendung geändert werden muss.
Man übersieht so keine Anwendungsfälle, die eventuell anzupassen sind.
Das erleichtert insbesondere das Testen.

Ein Script für die Prozeduren:
SQL-Code:
set term ^;

create or alter procedure P_JAHRE (
    VON_JAHR integer,
    BIS_JAHR integer)
returns (
    JAHR integer,
    VON date,
    BIS date)
AS
begin
  jahr = von_jahr;
  while (jahr <= bis_jahr) do
  begin
    von = cast('01.01.' || jahr as date);
    bis = cast('31.12.' || jahr as date);
    suspend;
    jahr = jahr + 1;
  end
end^

create procedure P_JAHRESUMSATZ_KUNDE (
  KDNR integer,
  VON_JAHR integer,
  BIS_JAHR integer)
returns (
  JAHR integer,
  UMSATZ numeric(15,2))
as
declare variable von date;
declare variable bis date;
begin
  /* Umsatzauswertung */
  for select jahr, von, bis
      from p_jahre (:von_jahr, :bis_jahr)
      into :jahr, :von, :bis
  do
  begin
    select sum(Brutto)
    from rechnung
    where (kdnr = :kdnr) and (datum between :von and :bis)
    int :umsatz;

    suspend;
  end
end^

set term ;^
Und die Abfrage aus der Anwendung:
SQL-Code:
  select * from P_JAHRESUMSATZ_KUNDE (:kdnr, :von_jahr, :bis_jahr)
;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:14 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