如何将总价值转化为双精度或向量
How to get total value into a double or a vector
我想将特定帐号的所有 "Amount" 总值转换为双精度或向量。由于我的数据库有许多相同帐号的交易,我无法弄清楚如何获得所有 records.My 代码的总价值给我最后的交易金额值而不是所有的总和。感谢任何帮助
ResultSet rs5 = (ResultSet) st1.executeQuery("SELECT Amount FROM Incoming_Transactions WHERE AccountNumber LIKE '" + accountnum+ "%'");
while (rs5.next()) {
Vector <Double> em = new Vector();
em.add(rs5.getDouble("Amount"));
Double [] myArray = em.toArray(new Double[0]);
check2 = myArray[0];
}
如果您只想要所有金额的总和,而不关心单个金额,您可以直接通过执行 SQL 查询来获取它:
SELECT SUM(Amount) FROM Incoming_Transactions WHERE AccountNumber LIKE '" + accountnum+ "%'"
如果您要获取给定帐户的单个金额并自行计算总和,您可以遍历 myArray
数组或 em
向量并添加所有金额。如果您选择这种方法,请将 em
的初始化移到循环之外。
while 循环的每次迭代,都会重置 Vector<Double> em
。这意味着只有最近的元素才真正结束在你的循环中。通过将 Vector
的声明移到循环外来解决此问题
Vector <Double> em = new Vector();
ResultSet rs5 = (ResultSet) st1.executeQuery("SELECT Amount FROM Incoming_Transactions WHERE AccountNumber LIKE '" + accountnum+ "%'");
while (rs5.next()) {
em.add(rs5.getDouble("Amount"));
}
Double [] myArray = new Double[em.size()];
myArray = em.ToArray(myArray);
//Now do stuff with all the entries
如果您只对总和感兴趣,您可以像 Eran 建议的那样将总和移到查询本身,或者在循环外声明一个总和变量并在每个循环中更新它,如下所示:
Double runningSum = 0.0;
ResultSet rs5 = (ResultSet) st1.executeQuery("SELECT Amount FROM Incoming_Transactions WHERE AccountNumber LIKE '" + accountnum+ "%'");
while (rs5.next()) {
runningSum += rs5.getDouble("Amount");
}
下面的查询将return帐号和相应的金额
Select accountnumber,sum(amount) from Incoming_Transactions WHERE AccountNumber LIKE '" + accountnum+ "%' group by accountnumber
此外,如果您不想修改查询,您可以使用 map,其中 accountnumer 是键,value 是金额。如果您在地图中已有帐号,请将金额添加到当前金额值中,否则将新帐户添加到地图中
我想将特定帐号的所有 "Amount" 总值转换为双精度或向量。由于我的数据库有许多相同帐号的交易,我无法弄清楚如何获得所有 records.My 代码的总价值给我最后的交易金额值而不是所有的总和。感谢任何帮助
ResultSet rs5 = (ResultSet) st1.executeQuery("SELECT Amount FROM Incoming_Transactions WHERE AccountNumber LIKE '" + accountnum+ "%'");
while (rs5.next()) {
Vector <Double> em = new Vector();
em.add(rs5.getDouble("Amount"));
Double [] myArray = em.toArray(new Double[0]);
check2 = myArray[0];
}
如果您只想要所有金额的总和,而不关心单个金额,您可以直接通过执行 SQL 查询来获取它:
SELECT SUM(Amount) FROM Incoming_Transactions WHERE AccountNumber LIKE '" + accountnum+ "%'"
如果您要获取给定帐户的单个金额并自行计算总和,您可以遍历 myArray
数组或 em
向量并添加所有金额。如果您选择这种方法,请将 em
的初始化移到循环之外。
while 循环的每次迭代,都会重置 Vector<Double> em
。这意味着只有最近的元素才真正结束在你的循环中。通过将 Vector
的声明移到循环外来解决此问题
Vector <Double> em = new Vector();
ResultSet rs5 = (ResultSet) st1.executeQuery("SELECT Amount FROM Incoming_Transactions WHERE AccountNumber LIKE '" + accountnum+ "%'");
while (rs5.next()) {
em.add(rs5.getDouble("Amount"));
}
Double [] myArray = new Double[em.size()];
myArray = em.ToArray(myArray);
//Now do stuff with all the entries
如果您只对总和感兴趣,您可以像 Eran 建议的那样将总和移到查询本身,或者在循环外声明一个总和变量并在每个循环中更新它,如下所示:
Double runningSum = 0.0;
ResultSet rs5 = (ResultSet) st1.executeQuery("SELECT Amount FROM Incoming_Transactions WHERE AccountNumber LIKE '" + accountnum+ "%'");
while (rs5.next()) {
runningSum += rs5.getDouble("Amount");
}
下面的查询将return帐号和相应的金额
Select accountnumber,sum(amount) from Incoming_Transactions WHERE AccountNumber LIKE '" + accountnum+ "%' group by accountnumber
此外,如果您不想修改查询,您可以使用 map,其中 accountnumer 是键,value 是金额。如果您在地图中已有帐号,请将金额添加到当前金额值中,否则将新帐户添加到地图中