MSSQL automatische Berechnung von Spalten mit Trigger

Tschulz

Neuer Benutzer
Beiträge
1
Hallo!
Ich habe folgendes Problem:
Ich habe 2 Tabellen Schule und Score (siehe Anhang). Die gelben Spalten sollen nach der Eingabe von Werten in die weißen Spalten automatisch berechnet werden.
Tag: Beginn am 24.06.2012, Wochenenden werden nicht gezählt
Total: Vormittag + Nachmittag + Total des Vortags der jeweiligen Schule (kumulativ)
Prozent: Total / (AnzahlSchueler * Tag) * 100

Meine Fragen:
- Hat jemand eine Idee wie ich die Tage automatisch berechnen kann?
- Ich habe versucht die Spalten Total und Prozent mit Hilfe von Trigger zu lösen. Bis jetzt habe ich aber nur mit Trigger in PostgreSQL gearbeitet und ich bekomme es irgendwie nicht hin. Entweder der Trigger wird nicht ausgelöst oder es erscheint eine Fehlermeldung, dass ich das Primary Key Constraint verletzt habe. Ich möchte jedoch an meinen Primary Key (Datum+Schule) gar nichts ändern. Kann mir jemand verraten welche Art von Trigger ich benutzen soll für meinen Zweck?

Vielen Dank für eure Hilfe!!
 

Anhänge

  • Tabellen.jpg
    Tabellen.jpg
    43,7 KB · Aufrufe: 2
Werbung:

PLSQL_SQL

SQL-Guru
Beiträge
176
Hier würdest du einen "AFTER INSERT" Trigger benötigen.

Jedoch glaube ich, dass du nicht in der selben Tabelle, in welcher du gerade insertest ein Update mittels Trigger auf den gleichen Datensatz machen kannst.

Lässt sich dies nicht bei der Erfassung des Datensatzes mit inserten?

Lg
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.582
Du hast im wesentlichen 4 Möglichkeiten:
1) Den Wert beim schreiben in die DB berechnen und mit übergeben (vermutlich am einfachsten)
2) Berechnete Spalten (Habe ich noch nie genutzt, funktioniert wohl auch nur bedingt. In einem anderen Thread "Bachelorarbeit" ging es auch grade darum.)
3) Eine View, die die zusätzlichen Spalten berechnet (mein Favorit)
4) Trigger (Sehr mächtig, muss aber auch immer auslösen wenn einer der zugrunde liegenden Werte geändert / gelöscht wird. Kann also mitunter bei mehreren Tabellen notwendig sein.)

Bei einem Trigger ist AFTER INSERT UPDATE die richtige Wahl. Am besten den Trigger Code hier mal posten. Der kann auch die grade eingefügte Spalte ergänzen.
 
Oben