Ok, Leute, hier die genauere Beschreibung, was in einem SQL-Statement ablaufen soll:
In den Feldern der Kundendatei sind folgende Felder relevant:
Kundennr (num. 6-stellig, eindeutig)
Sofortbonus (in Prozent)
Sonderrabatt (in Prozent)
Sonderbonus (in Prozent)
Staffelrabatt1 - 6 (DM-Umsatz)
In der Artikelbonus-Datei sind folgende Felder relevant:
Artikel-Nr (num. 6-stellig, eindeutig)
Kundennr (num. 6-stellig, eindeutig)
Nettopreis (DM/1000)
Rabatt (Prozent)
In der Artikeldatei sind folgende Felder relevant:
Artikel-Nr (num. 6-stellig, eindeutig)
Artikel-Verkaufspreis (DM/1000)
Artikel-Verkaufseinheit (x Stück oder Meter)
Artikel-Herstellkosten (DM/1000)
So und jetzt die Berechnungen:
Es soll eine Liste aller Kunden ausgegeben werden, deren gerechneter Artikelpreis kleiner als die Herstellkosten*1.5 sind.
Der Sofortbonus wird sofort auf den Verkaufspreis gewährt.
Ebenso der Sonderrabatt.
Der Sonderbonus auf den bereits rabattierten Preis.
Ist aber ein Nettopreis (Artikelbonusdatei) für den Kunden vorhanden, wird dieser anstatt des Verkaufspreises genommen, aber keinen Sofortbonus mehr gerechnet.
Ist Nettopreis aber leer, wird der Rabatt (Artikelbonusdatei) auf den Verkaufspreis gewährt und weiter wie beim Nettopreis verfahren.
Anschliessend wird der höchste Staffelrabatt genommen (falls vorhanden) und dieser auf den rabattierten Wert gerechnet.
Achja, Felder, die Null enthalten gelten als nicht gefüllt und dürfen nicht für Berechnungen herangezogen werden.
Ok, ist wirklich ziemlich kompliziert (in Wirklichkeit sogar noch etwas komplizierter, aber dann hätte ich hier einen Roman geschrieben (hab ich ja so schon…)).
Dachte mir halt, es wäre einfacher, wenn man allgemein sagen könnte, wie es geht, wenn man mal wirklich eine Abfrage nicht in eine Zeile bekommt. Und das gibt’s sicherlich!
Vielen Dank schonmal.
Knud