用java从数据库中提取值之和
我想在textfield中显示金额的总和,但从数据库中获取的金额..这里我尝试了此代码,但在textfield中仅显示0.0…无法获取实际金额 { 公共作废actionPerformedActionEvent arg0 {用java从数据库中提取值之和,java,Java,我想在textfield中显示金额的总和,但从数据库中获取的金额..这里我尝试了此代码,但在textfield中仅显示0.0…无法获取实际金额 { 公共作废actionPerformedActionEvent arg0 { try { String t= (String)client.getSelectedItem(); //client = JCombobox String qu
try
{
String t= (String)client.getSelectedItem(); //client = JCombobox
String query1="select sum(Amount) as total from enquiry where client= ?";
PreparedStatement p=conn.prepareStatement(query1);
p.setString(1,tfsum.getText()); //tfsum = textfield whr sum will displays
ResultSet r=p.executeQuery();
if(r.next())
{
String s=r.getString("sum");
tfsum.setText(s);
}
r.close();
p.close();
}
catch(Exception d)
{
d.printStackTrace();
}
}
});
使用sum而不是total。因为total不是有效的聚合函数
同时从查询中删除反勾号。不需要在反勾号/引号中添加列名。请尝试此操作
String query1="select sum(Amount) from enquiry where client= ?";
totalAmount不是有效的SQL。请尝试sumAmount。并使用调试器和堆栈跟踪;它们存在是有原因的。请尝试String query1=从查询中选择sumAmount,其中client=?;我认为不需要反勾号too@ScaryWombat它们不会造成伤害。也许OP选择使用它们是因为CLIENT是MySQL中的一个关键字,但不是保留关键字。@shmosel,@吓人…我试过了,但现在有空文本字段..甚至没有0.0按位置而不是名称从结果集中提取,或者给结果一个名称,即选择sumAmount作为total from…这些不是引号,它们是反勾号。有些人更喜欢用反勾号括住列和表名。我试过没有反勾号,但不起作用…字符串query1=selectsumAmount from enquiry where client=?;p.setString1,tfsum.getText;…将值传递给客户端的语法正确吗?…因为tfsum是文本字段名,结果应该显示在该字段中。数据库驱动程序将负责将值替换为SQL。您是否尝试直接在db上执行此SQL以获得结果。还有一件事,您为什么需要如果您仅获取1个客户端,则d求和record@Maverick...Same查询在sqlite数据库中工作,并给出正确的总和..并且针对1客户端,数据库中有多个值…所以这里要在textfield中显示这些值的总和。。。