2017-08-04 12 views
1

Input:Berechnung von absteigender Reihenfolge

Ich habe 5 Spalten in einer Tabelle:

KONTO COLLATERAL_TYPE VALUE COLLATERAL_VALUE LOST_probability 

Beispiel:

KONTO COLLATERAL_TYPE VALUE COLLATERAL_VALUE LOST_probability 
------------------------------------------------------------------ 
1   A   100   4    55% 
1   B   100   40    5% 
1   C   100   50    15% 
2   A   200   50    55% 
2   C   200   180    15% 
2   B   200   120    5% 

VALUE ist Gesamtwert an einzelnen KONTO und eine KONTO haben kann einige COLLATERAL_TYPEs. Ich muss VALUE reduzieren, indem ich mit COLATERAL mit der niedrigsten LOST_probability starre, und wenn COLLATERAL_VALUE größer als VALUE ist, dann gebe 0 zurück. Die Berechnung sollte auf einem einzelnen KONTO erfolgen.

Output:

KONTO COLLATERAL_TYPE VALUE COLLATERAL_VALUE LOST_probability CALCULATION 
----------------------------------------------------------------------------- 
1   A   100   4    55%  6 
1   B   100   40    5%   60 
1   C   100   50    15%  10 
2   A   200   50    55%  0 
2   C   200   180    15%  0 
2   B   200   120    5%   80 

Formel:

Berechnung (1) = WERT - COLLATERAL_VALUE (durch niedrigste LOST_probability) Berechnung (2) = Berechnung (1) - COLLATERAL_VALUE (durch 2. niedrigsten LOST_probability)

Ich benutze MS Access/SQL in MS Access.

Antwort

0

tun Dies sollte:

DLooklup("Value", "MyTable", "KONTO = " & KONTO & " AND LOST_probability = " & DMin("LOST_probability", "MyTable", "KONTO = " & KONTO)) - DSum("COLLATERAl_VALUE", "MyTable", "KONTO = " & KONTO & " AND LOST_probability <= " & LOST_probability) 

DLooklup("Value", "MyTable", "KONTO = " & KONTO & " AND LOST_probability = " & DMin("LOST_probability", "MyTable", "KONTO = " & KONTO)) sieht mit dem niedrigsten LOST_probability im KONTO den Wert der Zeile, können Sie es mit Value wenn Value ist immer das gleiche in einem gegebenen KONTO ersetzen.

DSum("COLLATERAl_VALUE", "MyTable", "KONTO = " & KONTO & " AND LOST_probability <= " & LOST_probability) subtrahiert alle COLLATERAL_VALUE s aus allen Einträgen in der gleichen KONTO mit einem gleichen oder niedrigeren LOST_probability

Dies setzt voraus, alle verwendeten Spalten in der Tabelle gelten numerische Spalten.

Beachten Sie, dass dies ein reiner SQL-Ansatz ist. Wenn Sie dies in VBA berechnen und an eine Tabelle ausgeben, wird dies möglicherweise beschleunigt.

Verwandte Themen