Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
MS SQL 2005, CASE WHEN und Update
Lion1984
myCSharp.de - Member



Dabei seit:
Beiträge: 782
Herkunft: Österreich

Themenstarter:

MS SQL 2005, CASE WHEN und Update

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10083

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers