gpt4 book ai didi

JAVA循环中的循环和多结果集关闭第一个结果集

转载 作者:行者123 更新时间:2023-12-01 12:12:16 25 4
gpt4 key购买 nike

我对这段代码有疑问:

im = stat.executeQuery("SELECT * FROM imones");

while (im.next()) {

sask = stat2.executeQuery("SELECT * FROM saskaitos WHERE imone='" + im.getInt("id") + "'");
while (sask.next()) {

suma = suma + Integer.parseInt(sask.getString("suma"));

kvit = stat3.executeQuery("SELECT * FROM kvitai WHERE sask_nr='" + sask.getInt("sask_nr") + "'");
while (kvit.next()) {
suma = suma - Integer.parseInt(kvit.getString("suma"));
}
kvit.close();

}
sask.close();

//if (suma > 0) {
imone = im.getString("pav");
skola = suma;
DefaultTableModel y = (DefaultTableModel) pagrindinis.visos_skolos_table.getModel();
Vector rowData = new Vector();

rowData.add(imone);
rowData.add(skola);
y.addRow(rowData);
//}
}

im.close();

我只得到一个循环( while (im.next()) ),因为“sask”查询没有结果,并且它关闭“im”结果集,而多语句没有帮助。我怎样才能让这段代码工作?谢谢!

最佳答案

不需要嵌套循环,这可以通过一个连接表并对金额求和的 SQL 语句来完成。显然,我没有可以使用的所有列名称,但您应该能够将我使用的名称替换为您自己的名称:

SELECT company.name,
SUM(bill.amount) - SUM(cheque.amount) AS amount
FROM imone AS company
INNER JOIN saskaitos AS bill ON company.id = bill.imone
LEFT JOIN kvitai AS cheque ON bill.sask_nr = cheque.sask_nr
GROUP BY company.name;

关于JAVA循环中的循环和多结果集关闭第一个结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27204341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com