我使用之前制作的结果集从indetails表中获得了两个发票ID(“inid”)。而且我想取发票表的数量的和值,它等于我之前拍的发票ID(“inid”)。
表名是“发票”。主键是“inid”(发票ID),“itid”(项目ID),“cuid”(客户ID)。
| inid | itid | cuid | itname | qty | sprice | total|
| 1 | 1 | 1 | item1 | 25 | 250 | 6250 |
| 2 | 1 | 1 | item2 | 15 | 250 | 3750 |
这是我的SQL查询。
try {
ResultSet rs3 = db.getData("SELECT SUM(qty) AS Total FROM invoice WHERE inid='" + rs1.getInt("inid") + "'");
while(rs3.next()){
int val = rs3.getInt("Total");
}
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, this.getClass().getName() + "rs2 " + e);
}
我只有第一个原始列“qty”的价值。我想取“qty”的整数值的总和,它等于“inid”(发票ID)
答案 0 :(得分:1)
这种方式很有用
try {
ResultSet rs3 = db.getData("SELECT qty FROM invoice WHERE inid='" + rs1.getInt("inid") + "'");
int total=0;
while(rs3.next()){
total+=rs3.getInt("qty");
}
System.out.println(total);
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, this.getClass().getName() + "rs2 " + e);
}
答案 1 :(得分:1)
您可以使用直接总计数量的组。
ResultSet rs3 = db.getData("SELECT SUM(qty) AS Total FROM invoice WHERE inid='" + rs1.getInt("inid") + "' GROUP BY inid");