Alguém pode me dizer como faço pra somar o valor total da coluna(float) de uma tabela , e depois mostrar
esse valor em um textfield???
Agradeço a quem puder dar uma dica!!!
Alguém pode me dizer como faço pra somar o valor total da coluna(float) de uma tabela , e depois mostrar
esse valor em um textfield???
Agradeço a quem puder dar uma dica!!!
Para somar é só fazer um SUM:
SELECT SUM(coluna_que_voce_quer_somar) FROM tabela
Depois que obter o resultado, é só fazer
JTextField txtField = new JTextField();
txtField.setText(String.valueOf(resultadoQueRecebeuDoBanco));
E se não souber fazer a consulta no banco, leia esse tutorial.
Blz? Flw! :thumbup:
[quote=von.juliano]Para somar é só fazer um SUM:
SELECT SUM(coluna_que_voce_quer_somar) FROM tabela
Depois que obter o resultado, é só fazer
JTextField txtField = new JTextField();
txtField.setText(String.valueOf(resultadoQueRecebeuDoBanco));
E se não souber fazer a consulta no banco, leia esse tutorial.
Blz? Flw! :thumbup: [/quote]
Amigão se puder me dar mais uma dica!!!
coloquei esse codigo mas não deu certo, em vez de me trazer no textfield o resultado
ele me trouxe o sql que passei,…
con_produtos.resultset.first();
String total = "select sum (valor) from produtos where cod_prod = "+tf_numeroped;
tf_total.setText(String.valueOf(total));
Obrigado pela ajuda!!!
Mano vc colocou na String total o sql… aí quando vc imprimiu a String total saiu o sql… nada de errado nisso…
Vc tá usando JDBC e as classes para executar o query?
Fala mano, blza?
Informe o que vc está utilizando.
Se é só um JTable com dados que você coloca ou se são informações que vem de um Banco de Dados.
Se você puder colocar um trecho do código awe facilita.
Abraço
[quote=Thiago Luis]Fala mano, blza?
Informe o que vc está utilizando.
Se é só um JTable com dados que você coloca ou se são informações que vem de um Banco de Dados.
Se você puder colocar um trecho do código awe facilita.
Abraço[/quote]
Amigo é o seguinte pra vc entende ,,,, tenho um campo que recebe o valor do produto da tabela "produto", ao
dar enter nesse campo ele grava na tabela “produto_venda” o produto selecionado, chama o metodo pra atualizar o jtable, até ai tudo bem, só ta me faltando pegar esses dados que ele gravou na tabela “produto_venda” na coluna “precovenda_prodvenda” , somar e
mandar o resultado para um text field “tf_total”…
[code] private void tf_valorActionPerformed(java.awt.event.ActionEvent evt) {
try
{
String sqlinsert ="insert into produto_venda (codigo_prodvenda,nomeprod_venda,qtd_prodvenda,precovenda_prodvenda,codprod_prodvenda) values ('"+
tf_venda.getText()+"','"+
tf_nomeprod.getText()+"','"+
tf_quantidade.getText()+"','"+
tf_valorvenda.getText()+"','"+
tf_codigoprod.getText()+"')";
con_vendasaida.statement.executeUpdate(sqlinsert);
//JOptionPane.showMessageDialog(null,"Gravação realizado com sucesso!");
con_vendasaida.executaSQL("select * from produto_venda " );
preencher_jtable();
// total();
}
catch (SQLException erro)
{
JOptionPane.showMessageDialog(null,“Erro a tentar Gravar o registro…”+erro);
}
}
[/code]
E o codigo pra preencher a jtable…
[code]public void preencher_jtable()
{
jTable1.getColumnModel().getColumn(0).setPreferredWidth(20);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(150);
jTable1.getColumnModel().getColumn(2).setPreferredWidth(20);
jTable1.getColumnModel().getColumn(3).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(4).setPreferredWidth(30);
con_vendasaida.executaSQL(" select * from produto_venda where codigo_prodvenda = "+tf_venda.getText() );
DefaultTableModel modelo = (DefaultTableModel)jTable1.getModel();
modelo.setNumRows(0);
try
{
while (con_vendasaida.resultset.next())
modelo.addRow(new Object[]{con_vendasaida.resultset.getString("codprod_prodvenda"),con_vendasaida.resultset.getString("nomeprod_venda"),con_vendasaida.resultset.getString("qtd_prodvenda"),con_vendasaida.resultset.getString("precovenda_prodvenda")} );
con_vendasaida.resultset.first();
}
catch (SQLException erro) {
JOptionPane.showMessageDialog(null,"N?o encontrou os dados"+erro);
}[/code]
Fala cara,
Então, vou tentar dar uma ajudada,
Vou dar uma continuada no que o von.juliano explicou:
Cria uma string para um comando sql que vai fazer a soma da coluna “precovenda_prodvenda” da tabela “produto_venda”.
String soma_coluna = "SELECT SUM(precovenda_prodvenda) FROM produto_venda"
Joga essa string numa statement e faz a consulta.
Vai retornar um ResultSet com um registro só e um campo só, contendo o valor da soma. O nome do campo da tabela (que retornou num teste que fiz aqui) foi “SUM(nome_da_minha_coluna)”.
Aí, vc faz aquela varredura padrão no ResultSet pra verificar se possui próximo. Se tiver (que só vai ter um registro) coloca numa variável, double, por exemplo.
double valor = 0;
try{
rs.first();
while(rs.next()){
valor = rs.getDouble("SUM(precovenda_prodvenda)");
}
catch(SQLException erro){
//seu tratamento
}
}
Daí, o valor que esta na variável “valor”, joga no JTextField.
É bem simples, mas pode resolver.
Posta awe se deu certo ou não.
Abraço
[quote=Thiago Luis]Fala cara,
Então, vou tentar dar uma ajudada,
Vou dar uma continuada no que o von.juliano explicou:
Cria uma string para um comando sql que vai fazer a soma da coluna “precovenda_prodvenda” da tabela “produto_venda”.
String soma_coluna = "SELECT SUM(precovenda_prodvenda) FROM produto_venda"
Joga essa string numa statement e faz a consulta.
Vai retornar um ResultSet com um registro só e um campo só, contendo o valor da soma. O nome do campo da tabela (que retornou num teste que fiz aqui) foi “SUM(nome_da_minha_coluna)”.
Aí, vc faz aquela varredura padrão no ResultSet pra verificar se possui próximo. Se tiver (que só vai ter um registro) coloca numa variável, double, por exemplo.
double valor = 0;
try{
rs.first();
while(rs.next()){
valor = rs.getDouble("SUM(precovenda_prodvenda)");
}
catch(SQLException erro){
//seu tratamento
}
}
Daí, o valor que esta na variável “valor”, joga no JTextField.
É bem simples, mas pode resolver.
Posta awe se deu certo ou não.
Abraço[/quote]
Beleza Thiago!!!
Fiz como vc colocou acima, mas estava dando problema de resultset fechado, só que olhando o formulario eu
ja tenho os dados nos textfield, só criei uma variavel que recebe o valor do produto e a cada item adicionado ela
é atualiza e mando o resultado dela pro (tf_valordanota), bem simples, dessa maneira não preciso ficar buscando no banco de dados todo item que coloco…
Mas da mesma maneira muito obrigado!!!
A título de curiosidade.
Você não precisa do rs.first().
Quando fizer o select, atribua um alias ao resultado de SUM, assim:
SELECT SUM(precovenda_prodvenda) AS soma FROM produto_venda
e para pegar o valor:
valor = rs.getDouble("soma");
É verdade celso,
Criar um alias para o nome do campo, eu tentei fazer só que da maneira errada
select sum(precovenda_prodvenda) from produto_venda as result;
Eu inverti, coloquei depois do from, ai não foi :oops:
Com relação ao rs.first();, quando se faz uma consulta o ponteiro do resultset não vai para o fim dele?
Por isso precisa posisionar o ponteiro em primeiro(first())?
Esclarece awe pra eu XD.
Abraço
Cara, comigo nunca foi não. Faço a busca, depois um while para pegar os registros e depois fecho tudo, só isso. (JDBC puro).
Abraços.
[quote]Cara, comigo nunca foi não. Faço a busca, depois um while para pegar os registros e depois fecho tudo, só isso. (JDBC puro).
Abraços.[/quote]
Engraçado,
Quando faço aplicações usando JDBC com JFrame eu tenho que fazer rs.first(), se não não vai.
Mas ai, quando faço para web, eu tenho que fazer rs.beforeFirst() se não não vai :shock:
Mó estranho…
Abraço
[quote=Thiago Luis][quote]Cara, comigo nunca foi não. Faço a busca, depois um while para pegar os registros e depois fecho tudo, só isso. (JDBC puro).
Abraços.[/quote]
Engraçado,
Quando faço aplicações usando JDBC com JFrame eu tenho que fazer rs.first(), se não não vai.
Mas ai, quando faço para web, eu tenho que fazer rs.beforeFirst() se não não vai :shock:
Mó estranho…
Abraço[/quote]
Irmão_de_luta na area…
Ai moçada esperta!!!!!!!!!!
Agora funciono beleza, fico assim o trem…
[code] public void total1()
{
float valor= 0;
try
{
String sql = "select sum (precovenda_prodvenda) AS soma from produto_venda where codigo_prodvenda ="+tf_venda.getText();
con_vendasaida.executaSQL(sql);
con_vendasaida.resultset.first();
valor = con_vendasaida.resultset.getFloat("soma");
tf_totalnota.setText(String.valueOf(valor));
}
catch(SQLException erro)
{
}
[/code]
Valeu moçada…
Eu nunca precisei fazer um first() porque sempre fiz um next(). =)