Pessoal, não consigo pensar num loop que pega varios itens dentro de uma tabela com itens de pedido com suas determinadas quantidades e devolve essas quantidades aos seus estoques na tabela de produtos quando o pedido é apagado, não consigo fazer isso, posso ter o mesmo produto varias vezes no pedido com quantidades diferentes, e produtos diferentes com quantidades diferentes, alguem pode me ajudar?
estou tentando assim mas ele da o seguinte erro Erro: Subquery returns more than 1 row
public void cancelarPedido(){
String id_pedido2 = ednpedido.getText();
String sql = "SELECT * FROM `item_pedido` WHERE id_pedido = '"+id_pedido2+"'";
try {
con.executeSQL(sql);
{
}while(con.resultset.next());
String insere3SQL = "UPDATE produto SET qtd =`qtd`+ (SELECT sum(qtd)FROM item_pedido WHERE id_prod = (SELECT id_prod FROM item_pedido WHERE id_pedido = '"+id_pedido2+"'GROUP BY id_prod)) WHERE id_prod IN ( SELECT id_prod "+
"FROM item_pedido "+
"WHERE id_pedido = '"+id_pedido2+"')";
try {
con.statemente.executeUpdate(insere3SQL);
}
catch (SQLException ex) {
System.out.println("Erro: "+ex.getMessage());
}
String insere6SQL = "DELETE FROM item_pedido WHERE id_pedido = '"+id_pedido2+"'";
String insere7SQL = "DELETE FROM pedido WHERE id_pedido = '"+id_pedido2+"'";
try {
con.statemente.executeUpdate(insere6SQL);
}
catch (SQLException ex) {
System.out.println("Erro: "+ex.getMessage());
}
try {
con.statemente.executeUpdate(insere7SQL);
}
catch (SQLException ex) {
System.out.println("Erro: "+ex.getMessage());
}
} catch (SQLException ex) {
Logger.getLogger(cad_pedido.class.getName()).log(Level.SEVERE, null, ex);
}
cad_pedido.this.dispose();
}