输入:
我在表格中有5列:
KONTO COLLATERAL_TYPE VALUE COLLATERAL_VALUE LOST_probability
示例:
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是单个KONTO的总体价值,而一个KONTO可以拥有少量COLLATERAL_TYPE。 我需要使用具有最低LOST_probability的COLATERAL减少VALUE凝视,如果COLLATERAL_VALUE较大,那么VALUE则返回0。 计算应该在单个KONTO上。
输出:
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
公式:
CALCULATION(1)= VALUE - COLLATERAL_VALUE(最低LOST_probability) 计算(2)=计算(1) - COLLATERAL_VALUE(第二低LOST_probability)
我在MS Access中使用MS Access / SQL。
答案 0 :(得分:0)
这应该做:
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))
查找LOST_probability
中KONTO
最低的行的值,如果Value
始终为Value
,则可以将其替换为KONTO
在给定的DSum("COLLATERAl_VALUE", "MyTable", "KONTO = " & KONTO & " AND LOST_probability <= " & LOST_probability)
中也是如此。
COLLATERAL_VALUE
减去相同KONTO
中所有条目的所有LOST_probability
个points:[]
这假设表中所有使用的列都是有效的数字列。
请注意,这是一种纯SQL方法。在VBA中计算并将其输出到表可能会加快这一速度。