SQL für folgendes Problem
Geizhals » Forum » Programmierung » SQL für folgendes Problem (3 Beiträge, 320 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
SQL für folgendes Problem
26.05.2015, 10:46:29
Hallo,
Ich habe folgende Ausgangslage:

G ... Gewichtung
Anz ... Anzahl

Einige Zeilen mit der Kombination:

G1 | Anz1
G2 | Anz2
...
Gn | Anzn

Jetzt muss man einen Gesamtbetrag B auf die einzelnen Zeilen Aufteilen wobei die Gewichtung der Zeilen eine Rolle spielt!

Bsp.: B =10000
1  | 10    ---> 4545,45
,6 | 20    ---> 5454.55

Das könnte ich einfach in einem Update machen:
update ...
    set Betrag = Anz * G * Gesamtbetrag /(select sum(G*Anz) from ....);


So nun zum Problem. Jetzt soll es für jeden Satz zusätzlich einen Höchstbetrag geben, der nicht überschritten werden soll.
Bsp. von oben:
0,6 | 20 | 5300
Der Höchstbetrag bei der Gewichtung von 0,6 soll bei 5300 liegen, dh. 154,55 sollen zur anderen Zeile hinzukommen. Bei mehr als 2 Zeilen soll der Betrag dann anteilsmäßig (Nach der Anzahl) auf die anderen Zeilen verteilt werden.
Wenn der Gesamtbetrag über der Summe der Höchstbeträge liegt, soll nicht alles zugewiesen werden.

Ich bin schon etwas Betriebsblind, aber kann man dafür ein Update-Statement bauen, mit dem ich diese Werte jeweils ausrechne für beliebig viele Sätze, ober muss ich eine Schleife laufen lassen?

emefge
Infosauger
_____________________________________________________________________________

Weil die Lichtgeschwindigkeit höher als die Schallgeschwindigkeit ist, hält man viele Leute für helle Köpfe bis man sie reden hört.

"Bekomme ich bei Ihnen so einen ganz kleinen Lötkolben zum CPU reparieren?"

Wieso Realität? Ich hab doch verdammt noch mal was Besseres zu tun!



26.05.2015, 10:47 Uhr - Editiert von Infosauger, alte Version: hier
Antworten PM Alle Chronologisch
 
Melden nicht möglich
.  Re: SQL für folgendes Problem
 (Somnatic am 26.05.2015, 15:55:13)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung