java - 如何求和一列的总值并将其添加到表的末尾?
问题描述
Hwllo,我正在尝试总结 jTable 中列的值并将其添加到表的末尾。例如:我想对 unit_price 列的值求和...
任何人都可以帮助我吗?
我编码的方式:
...
Statement st=
con.createStatement();
ResultSet rs=
st.executeQuery("SELECT id,
item_name, unit_price From item");
rs.last();
int row= rs.getRow();
int column=
rs.getMetaData.getColumnCount();
String[][] data= new String[row].
[column];
rs.beforeFirst();
int x=0;
while(rs.next){
for(int i=0; i<column; i++){
data[x][i]=rs.getString(i+1);
}
x++;
}
String columns=.
{"Id","Item_name","Unit_price"};
jTable1 = new
javax.swing.JTable(data, columns);
jScrollPane1.setViewportView(jTable1);
解决方案
使用下一个查询而不是SELECT id, item_name, unit_price From item
:
SELECT id,
CASE WHEN id IS NULL
THEN 'TOTAL'
ELSE MAX(item_name)
END item_name,
SUM(unit_price) unit_price
FROM item
GROUP BY id WITH ROLLUP;
我假设这id
是表的主键。
如果您需要某些特定的排序顺序,则该ORDER BY
子句必须如下所示
ORDER BY id IS NOT NULL, {needed sorting expression}
推荐阅读
- python - 我在这里想念什么?python中的简单for循环
- html - 如何从列表中创建新的 HtmlAgilityPack.HtmlDocument
从第一次“选择/过滤”运行? - python - 从一列 csv 文件创建数据集,其中数据用空格分隔
- ssh - 连接到 CentOS 7.9 时出现 SSH 错误权限被拒绝
- binary - 如果给出另一个字母的二进制代码,如何找到给定字母的 ascii 代码?
- c++ - 如何在 C 中循环 if 语句
- node.js - 我收到 Uncaught (in promise) 错误:请求失败,状态码为 401
- reactjs - 从普通方法调用组件?
- python - 创建属性时使用构造函数参数的正确方法
- tensorflow - 在自定义损失函数中使用梯度(tensorflow+keras)