1

我使用我之前制作的结果集从 indetails 表中获得了两个发票 ID(“inid”)。我想取发票表数量的总和值,它等于我之前使用的发票 ID(“inid”)。

表名是“invoice”。主键是“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);
}

我只有第一个 raw 列“qty”的值。我想取“qty”的总和等于“inid”(发票ID)

4

2 回答 2

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);
  }
于 2013-09-23T07:09:01.163 回答
1

您可以使用 group by 直接给出数量的总数。

ResultSet rs3 = db.getData("SELECT SUM(qty) AS Total FROM invoice WHERE inid='"  +   rs1.getInt("inid") + "' GROUP BY inid");
于 2013-09-23T07:13:33.780 回答