我有一个Java程序,它将在每月的第15天和最后一天运行,我的示例具有2种不同类型的金额。
这种类型的金额来自查询,它已经按sysdate排序,这是查询的结果:
130 500
在运行程序时,它将自动从第一笔金额中扣除,其余金额将进入第二笔金额。
这是第一笔金额125。
这是第二个数字100。
我该怎么做?非常感谢您的帮助。
//这是获取130,500的查询。
String getAdvanceEmployee = "SELECT AMOUNT FROM CFV_CHARGES WHERE EMP_NO = '40000124' AND TO_DATE(DUE_DATE) = '30-JUN-19' AND IS_ADVANCE = '1'";
ResultSet result1 = stmt.executeQuery(getAdvanceEmployee);
while(result1.next()){
String amount = result1.getString("AMOUNT");
//the output 130,150
//this is the query to get the 125.
String getAdvancePayment = "SELECT AMOUNT FROM CFV_CHARGES WHERE EMP_NO = '40000124' AND TO_DATE(DUE_DATE) = '30-JUN-19' AND ENTRY_TYPE = '1'";
ResultSet result2 = stmt1.executeQuery(getAdvancePayment);
while(result1.next()){
String amount = result1.getString("AMOUNT");
//the output will 125
//im confused the logic itself
}
}
查询中的金额: 130 500
第一笔金额125 第二笔金额100
实际结果是:
125 -125 //此负数来自130,其余-5将转到下一个数字
100 -5 -95
//,最后一个是-405。
答案 0 :(得分:0)
您可以这样计算:
public int calculatAmountOne(int firstAmount , int secondAmount){
//in your case firstAmount = 125 , secondeAmount = 130
int rest = firstAmount - secondeAmount ;
return rest
}
public int calculatAmountTwo(int firstAmount , int secondAmount){
//in your case firstAmount = 100, secondeAmount = -5
int rest = firstAmount + secondeAmount ;
return rest
}
因此,您现在创建了两种方法来计算两种不同的用量,就可以使用它们
int restOne = calculatAmountOne(125,130) // restOne = -5 ;
int restTwo = calculatAmountTwo(100,restOne) // restTwo = 95 ;
int lastRemaining = restTwo + 500 // lastRemaining = 595
您以后应该使用您得到的数字,而不是我根据您的问题举例说明的数字!