Reihenfolge der Bearbeitung von Insert

14/01/2010 - 00:30 von Tamara Mikes | Report spam
Salü alle zusammen

Ich habe eine Tabelle tblCache mit Zahlen das schaut ungefàhr so aus:
ID: (int)
TeilUmsatzA1: 33
TeilUmsatzA2: 22
TeilUmsatzB1: 10
TeilUmsatzB2: 15
Umsatz1: 43
Umsatz2: 37
Total: 80

Die TeilUmsàtze stammen aus anderen Tabellen. Sie werden so berechnet:

DELETE tblCache
INSERT INTO tblCache (TeilUmsatzA1,TeilUmsatzA2,TeilUmsatzB1,TeilUmsatzB2)
VALUES (33,22,10,15)

Jetzt kommt die Berechnung des Umsatz und des Total. Das mache ich mit
UPDATE
Das Problem ist nur, dass die Datensàtze voneinander abhàngig sind. Das
heisst, der Datensatz ID 1 ist von Datensatz 5 abhàngig etc.

Nun habe ich in einer weiteren Tabelle tblReihenfolge definiert welcher Satz
wovon abhàngt.
ID Sort
1 5
2 1
3 4
4 2
5 3

Ich möchte nun meinem UPDATE Befehl sagen, dass er die Sàtze in der
Reihenfolge der Spalte Sort abarbeiten soll. Ich hatte mir das in einer View
so vorgestellt:

UPDATE viewCache Set ORDER BY SORT

Aber Sort gibt es nicht bei Update wie bringe ich mein SQL dazu die
Reihenfolge der Berechnung zu berücksichtigen?

Vielen Dank für Hinweise
Gruss Tamara


PS: Ich hoffe, Ihr könnt mich verstehen was ich machen (nicht will) muss.
 

Lesen sie die antworten

#1 Christoph Muthmann
14/01/2010 - 08:00 | Warnen spam
Tamara Mikes wrote:
Salü alle zusammen

Ich habe eine Tabelle tblCache mit Zahlen das schaut ungefàhr so aus:
ID: (int)
TeilUmsatzA1: 33
TeilUmsatzA2: 22
TeilUmsatzB1: 10
TeilUmsatzB2: 15
Umsatz1: 43
Umsatz2: 37
Total: 80

Die TeilUmsàtze stammen aus anderen Tabellen. Sie werden so berechnet:

DELETE tblCache
INSERT INTO tblCache
(TeilUmsatzA1,TeilUmsatzA2,TeilUmsatzB1,TeilUmsatzB2) VALUES
(33,22,10,15)
Jetzt kommt die Berechnung des Umsatz und des Total. Das mache ich mit
UPDATE
Das Problem ist nur, dass die Datensàtze voneinander abhàngig sind.
Das heisst, der Datensatz ID 1 ist von Datensatz 5 abhàngig etc.

Nun habe ich in einer weiteren Tabelle tblReihenfolge definiert
welcher Satz wovon abhàngt.
ID Sort
1 5
2 1
3 4
4 2
5 3

Ich möchte nun meinem UPDATE Befehl sagen, dass er die Sàtze in der
Reihenfolge der Spalte Sort abarbeiten soll. Ich hatte mir das in
einer View so vorgestellt:

UPDATE viewCache Set ORDER BY SORT

Aber Sort gibt es nicht bei Update wie bringe ich mein SQL dazu
die Reihenfolge der Berechnung zu berücksichtigen?



Hallo Tamara,
leider ist das Problem für mich nicht nachvollziehbar. Warum sind die Sàtze
abhàngig?
Ich würde für jede Zeile berechnen:
Update tblCache set Umsatz1 = TeilUmsatzA1+TeilUmsatzB1,
Umsatz2=TeilUmsatzA2 + TeilUmsatzB2,
Total = TeilUmsatzA1 + TeilUmsatzA2 + TeilUmsatzB1 + TeilUmsatzB2

Du schreibst, die Teilumsàtze werden berechnet, postest aber ein Insert!?!

Poste doch mal ein Repro-Skript mit entspechenden Daten.

Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org

Ähnliche fragen