Spalten summieren nach Insert

Advantage Database Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Spalten summieren nach Insert

Beitrag von Manfred »

folgendes Szenario

Code: Alles auswählen

INSERT INTO monatsabschluss (monatsstunden,freizeit,urlaub,krank,sonntagszuschlag) VALUES(1,1,1,1,1)
gleichzeitig soll aber auch eine Summe auf die Felder gebildet und die dann ins Feld Quersumme eingetragen werden. Das hätte ich aber gerne automatisiert. Also wäre doch ein Trigger der direkt nach einem Insert feuert, hierfür genau das richtige, oder? Aber wie müßte der aussehen?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Spalten summieren nach Insert

Beitrag von nightcrawler »

Code: Alles auswählen

create trigger trig_ins on monatsabschluss after insert
begin
  update monatsabschluss set quersumme=(monatsstunden + freizeit + urlaub + krank + sonntagszuschlag)
  where rowid = ::stmt.TrigRowid
end;
evtl NULL-Werte noch richtig behandeln: COALESCE(monatsstunden,0)

//Edit: hatte Durchschnitt, nicht Quersumme berechnet.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Spalten summieren nach Insert

Beitrag von UliTs »

Falls die Daten später durch ein Update verändert werden sollten, kann man auch einen entsprechenden Update-Trigger generieren.
Aber warum gibt es das "Quersumme"-Feld überhaupt? Wäre es nicht viel besser, darauf zu verzichten und statt des Befehls

Code: Alles auswählen

select * from monatsabschluss
den Befehl

Code: Alles auswählen

select *,monatsstunden + freizeit + urlaub + krank + sonntagszuschlag Quersumme from monatsabschluss
zu verwenden?
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Spalten summieren nach Insert

Beitrag von Manfred »

Hi Uli,
an wen ist die Frage gerichtet?
Die Bezeichnung Quersumme ist etwas falsch ausgedrückt. Eigentlich ist es ja nur eine Summenbildung der anderen Spalten. Dieser Satz würde nie wieder geändert werden. Aber genau so, wie Joachim es geschrieben hat klappt es und sollte es ausreichen für meine Zwcke.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Spalten summieren nach Insert

Beitrag von UliTs »

Die Frage war natürlich an Dich gerichtet 8) .
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Antworten