Laden...

MS SQL 2005, CASE WHEN und Update

Erstellt von Lion1984 vor 15 Jahren Letzter Beitrag vor 15 Jahren 700 Views
L
Lion1984 Themenstarter:in
770 Beiträge seit 2006
vor 15 Jahren
MS SQL 2005, CASE WHEN und Update

verwendetes Datenbanksystem: MS SQL 2005

Hallo liebes Forum,

ich habe eine klassische Master Detail ansicht, um mein Problem zu schildern verwende ich "Bestellung" als Master und Posten / Artikel als Detail.

Die Bestellung selbst kann einen Status von 1, 2 oder 3 haben (bestellt, geliefert, teilweise geliefert), die Artikel selbst einen Status von 1 - 5 (bestellt, geliefert, stoniert, nicht verfügbar).

Nun wird ein Artikel bearbeitet und der Status des Artikel soll sich ändern, wie ebenso der Status von der Bestellung über ein SQL Statement.
Hierbei soll folgende Logik dienen:
haben alle Artikel einen Status 1 (bestellt), so ist die Bestellung auch 1.
sind alle Artikel geliefert oder stoniert, so sol die Bestellung als komplett / geliefert sein, also Status 2.
Bei allen anderem sollte die Bestellung "teil. geliefert" sein (Status 3), also wenn z.b ein artikel bereits geliefert worden ist, ein anderer aber noch nicht verfügbar ist bzw. erst geliefert wird.

Das ganze habe ich aktuell mit einer ganzen Latte CASE WHEN und Count gemacht, nur funktioniert das leider nicht 100% bzw. denke ich mir, es muss einen schöneren Weg geben. Wie würdert ihr dieses Update Statement lösen?

Hoffe ich habe die Ausgangslange gut bzw. verständlich dargelegt.
Lion

lg Lion

F
10.010 Beiträge seit 2004
vor 15 Jahren

Der Sql-Server ist zum aufbewahren und wiedergeben der Daten da.

Businesslogik gehört in den Businesslayer oder den Appserver, nicht in die DB.

Also mache die Vorarbeiten in C#, die Datenübertragung in SQL.