Oracle-Aggregationsfunktion zum Zuweisen von Betrag

8

Angenommen, ich habe 2 Tabellen T1 und T2 wie folgt

T1 :

%Vor%

T2 :

%Vor%

Jeder Eintrag in der Tabelle T1 steht für einen Beutel und seine Kapazität, hier habe ich 5 Beutel. Ich möchte eine SQL schreiben, die Elemente in der Tabelle T2 jedem Beutel mit demselben Typ zuweist, d. H. Das Ergebnis sollte wie folgt aussehen

%Vor%

Daher finde ich eine Art Aggregationsfunktion, nennen wir sie allocate() , die wie oben die Spalte allocated_amount erzeugen kann. Ich habe eine Vermutung, dass es, falls vorhanden, möglich ist so benutzt werden

%Vor%

Meine derzeitige Lösung ist die Verwendung einer temporären Tabelle und einer PL / SQL-Schleife für die Berechnung, aber ich hoffe, dass ich es mit einem einfachen SQL machen kann.

    
asinkxcoswt 15.07.2015, 15:48
quelle

3 Antworten

4

Sie suchen nach einer kumulativen Summe. Etwas wie das:

%Vor%     
Gordon Linoff 15.07.2015, 16:05
quelle
4

Dies sollte den Trick machen:

%Vor%     
Sentinel 15.07.2015 16:26
quelle
3

Annahme Zuteilung in der abgeleiteten Reihenfolge der Beutelkapazität

%Vor%

Beachten Sie, dass die Reihenfolge der Zuweisung wichtig ist, wenn Sie die Abfallkapazität minimieren möchten und eine optimale Zuordnung mit verschiedenen Aufträgen schwierig sein könnte.

    
Marmite Bomber 15.07.2015 16:22
quelle