Galera como faço para fazer um select que existe tres possibilidades…
Cliente, numero_pedido,item.
A pessoa na hora de consultar pode realizar a consulta somente pelo cliente, ou somente pelo numero do pedidou ou pelo item, gostaria de saber como faço para montar o esqueleto do select, recebendo as vezes somente o codigo do cliente, ou as vezes todas essas informações…
Ficou claro, ou nao?
obrigado
Galera caso nao tenha ficado claro é o seguinte, possui uma aplicação e o usuario podera escolher três tipos de filtros para realizar uma determinada consulta, primeiro filtro por cliente, segundo filtro por item ou por numero de pedido, gostaria de saber como fazer essa implementação no meu select quando eu receber só o do cliente fazer a consultar somente pelo o codigo do cliente, quando eu selecionar cliente e item, fazer a consultar por cliente e item, segue meu código abaixo, para que vocês possam analisar e ver onde eu posso implementar, obrigado.
public ArrayList loadInfoPlanoMestre(String empresa,int plano_mestre,int cod_cliente,int num_pedido,String cod_item) {
try {
int codigo_cliente = cod_cliente;
String codigo_item = cod_item;
int codigo_pedido = 0;
lista = new ArrayList();
conex.conectar();
Statement query = conex.conn.createStatement();
ResultSet resultado = query.executeQuery("SELECT DISTINCT d.cod_empresa,"
+ "d.cod_mestre,e.num_carregamento,f.cod_cliente,g.num_pedido,"
+ "a.num_sequencia,a.cod_item,j.den_item,(c.qtd_solicitada)qtd_pedido,"
+ "i.qtd_etiqueta,b.ies_situacao "
+ "FROM bc5_estrutura_vdp a, esp_montag_carreg b,bc5_mont_car_detal c,"
+ "ti_carga_mestre d,ti_carga_planos e,clientes f, pedidos g,"
+ "OUTER esp_etiq_lida_estr h,OUTER esp_etiq_lida_exp i,item j "
+ "WHERE a.cod_empresa='"+empresa+"' "
+ "AND a.cod_empresa = d.cod_empresa "
+ "AND a.cod_empresa = b.cod_empresa "
+ "AND a.cod_empresa = c.cod_empresa "
+ "AND a.cod_empresa = g.cod_empresa "
+ "AND a.cod_empresa = j.cod_empresa "
+ "AND d.cod_mestre = '"+plano_mestre+"' "
+ "AND b.ies_situacao in ('N','F') "
+ "AND d.cod_mestre = e.cod_mestre "
+ "AND e.num_carregamento = a.num_carregamento "
+ "AND e.num_carregamento = b.num_carregamento "
+ "AND e.num_carregamento = c.num_carregamento "
+ "AND e.num_carregamento = h.num_carregamento "
+ "AND e.num_carregamento = i.num_carregamento "
+ "AND g.cod_cliente = f.cod_cliente "
+ "AND g.num_pedido = a.num_pedido "
+ "AND g.num_pedido = b.num_pedido "
+ "AND g.num_pedido = c.num_pedido "
+ "AND g.num_pedido = h.num_pedido "
+ "AND g.num_pedido = i.num_pedido "
+ "AND a.cod_item = c.cod_item "
+ "AND a.cod_item = h.cod_item "
+ "AND a.cod_item = j.cod_item "
+ "AND a.num_sequencia = b.num_sequencia "
+ "AND a.num_sequencia = c.num_sequencia "
+ "AND a.num_sequencia = h.num_sequencia "
+ "AND a.num_sequencia = i.num_sequencia "
+ "ORDER BY e.num_carregamento,f.cod_cliente,g.num_pedido,a.num_sequencia,a.cod_item,j.den_item;");
while (resultado.next()) {
remover = new RemoverCarregamento();
remover.setCod_empresa(resultado.getString(1));
remover.setPlano_mestre(resultado.getInt(2));
remover.setPlano_carga(resultado.getInt(3));
remover.setCod_cliente(resultado.getInt(4));
remover.setNum_pedido(resultado.getInt(5));
remover.setCod_item(resultado.getString(7));
remover.setDen_item(resultado.getString(8));
remover.setQtd_solicitada(resultado.getFloat(9));
lista.add(remover);
}
conex.fechar_resultset(resultado);
query.close();
return lista;
} catch(SQLException e) {
System.out.println("loadInfoPlanoMestre");
System.out.println(e);
return null;
}
}
Bom eu consegui resolver, da seguinte forma, caso alguem tenha a mesma dúvida…
String sql = "SELECT DISTINCT d.cod_empresa,"
+ "d.cod_mestre,e.num_carregamento,f.cod_cliente,g.num_pedido,"
+ "a.num_sequencia,a.cod_item,j.den_item,(c.qtd_solicitada)qtd_pedido,"
+ "i.qtd_etiqueta,b.ies_situacao "
+ "FROM bc5_estrutura_vdp a, esp_montag_carreg b,bc5_mont_car_detal c,"
+ "ti_carga_mestre d,ti_carga_planos e,clientes f, pedidos g,"
+ "OUTER esp_etiq_lida_estr h,OUTER esp_etiq_lida_exp i,item j "
+ "WHERE a.cod_empresa='"+empresa+"' "
+ "AND a.cod_empresa = d.cod_empresa "
+ "AND a.cod_empresa = b.cod_empresa "
+ "AND a.cod_empresa = c.cod_empresa "
+ "AND a.cod_empresa = g.cod_empresa "
+ "AND a.cod_empresa = j.cod_empresa "
+ "AND d.cod_mestre = '"+plano_mestre+"' "
+ "AND b.ies_situacao in ('N','F') "
+ "AND d.cod_mestre = e.cod_mestre "
+ "AND e.num_carregamento = a.num_carregamento "
+ "AND e.num_carregamento = b.num_carregamento "
+ "AND e.num_carregamento = c.num_carregamento "
+ "AND e.num_carregamento = h.num_carregamento "
+ "AND e.num_carregamento = i.num_carregamento "
+ "AND g.cod_cliente = f.cod_cliente "
+ "AND g.num_pedido = a.num_pedido "
+ "AND g.num_pedido = b.num_pedido "
+ "AND g.num_pedido = c.num_pedido "
+ "AND g.num_pedido = h.num_pedido "
+ "AND g.num_pedido = i.num_pedido "
+ "AND a.cod_item = c.cod_item "
+ "AND a.cod_item = h.cod_item "
+ "AND a.cod_item = j.cod_item "
+ "AND a.num_sequencia = b.num_sequencia "
+ "AND a.num_sequencia = c.num_sequencia "
+ "AND a.num_sequencia = h.num_sequencia "
+ "AND a.num_sequencia = i.num_sequencia ";
if (cod_cliente > 0)
sql += "AND g.cod_cliente='"+cod_cliente+"' ";
if (num_pedido > 0)
sql += "AND g.num_pedido='"+num_pedido+"' ";
if (!cod_item_.trim().equals(""))
sql += "AND a.cod_item ='"+cod_item_+"'";
sql += "ORDER BY e.num_carregamento,f.cod_cliente,g.num_pedido,a.num_sequencia,a.cod_item,j.den_item ";
ResultSet resultado = query.executeQuery(sql);