JUNÇÃO DE TABELAS

26/09/2017

0

Estou tentando criar um controle de vendas e estoque, o código abaixo é da classe DAOVendasClientes.

this.conectar();
this.executarSQL(
"SELECT "
+ " tbl_vendas.pk_id_venda, "
+ " tbl_vendas.fk_cliente, "
+ " tbl_vendas.ven_data_venda, "
+ " tbl_vendas.ven_valor_liquido, "
+ " tbl_vendas.ven_valor_bruto, "
+ " tbl_vendas.ven_desconto, "
+ " tbl_cliente.fk_id_cliente, "
+ " tbl_cliente.cli_nome, "
+ " tbl_cliente.cli_endereço, "
+ " tbl_cliente.cli_bairro, "
+ " tbl_cliente.cli_cidade, "
+ " tbl_cliente.cli_estado, "
+ " tbl_cliente.cli_num, "
+ " tbl_cliente.cli_cep, "
+ " tbl_cliente.cli_telefone, "
+" FROM "
+ "tbl_vendas INNER JOIN tbl_cliente"
+ " ON tbl_vendas.fk_cliente = tbl_cliente.fk_id_cliente ; "
+";"
);

while(this.getResultSet().next()){
modelVendas = new ModelVendas();
modelCliente = new ModelCliente();
modelVendasCliente = new ModelVendasCliente();
//VENDAS
modelVendas.setIdVenda(this.getResultSet().getInt(1));
modelVendas.setCliente(this.getResultSet().getInt(2));
modelVendas.setVenDataVenda(this.getResultSet().getDate(3));
modelVendas.setVenValorLiquido(this.getResultSet().getDouble(4));
modelVendas.setVenValorBruto(this.getResultSet().getDouble(5));
modelVendas.setVenDesconto(this.getResultSet().getDouble(6));
//CLIENTES
modelCliente.setIdCliente(this.getResultSet().getInt(7));
modelCliente.setCliNome(this.getResultSet().getString(8));
modelCliente.setCliEndereço(this.getResultSet().getString(9));
modelCliente.setCliBairro(this.getResultSet().getString(10));
modelCliente.setCliCidade(this.getResultSet().getString(11));
modelCliente.setCliEstado(this.getResultSet().getString(12));
modelCliente.setCliNum(this.getResultSet().getString(13));
modelCliente.setCliCep(this.getResultSet().getString(14));
modelCliente.setCliTelefone(this.getResultSet().getString(15));

modelVendasCliente.setModelVendas(modelVendas);
modelVendasCliente.setModelCliente(modelCliente);

listamodelVendasClientes.add(modelVendasCliente);
}
}catch(Exception e){
e.printStackTrace();
}finally{
this.fecharConexao();
}
return listamodelVendasClientes;
}
}

Quando executo minha ViewVendas apresenta o seguinte erro:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FROM tbl_vendas INNER JOIN tbl_cliente ON tbl_vendas.fk_cliente = tbl_cliente.fk' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2788)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2738)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1617)
at conexoes.ConexaoMySql.executarSQL(ConexaoMySql.java:77)
at DAO.DAOVendasCliente.getListaVendasCClienteDAO(DAOVendasCliente.java:27)

Alguém pode me ajudar?
Fábio

Fábio

Responder

Post mais votado

26/09/2017

Tenta usar assim:

"SELECT"
+ "tbl_vendas.pk_id_venda,"
+ "tbl_vendas.fk_cliente,"
+ "tbl_vendas.ven_data_venda,"
+ "tbl_vendas.ven_valor_liquido,"
+ "tbl_vendas.ven_valor_bruto,"
+ "tbl_vendas.ven_desconto,"
+ "tbl_cliente.fk_id_cliente,"
+ "tbl_cliente.cli_nome,"
+ "tbl_cliente.cli_endereço,"
+ "tbl_cliente.cli_bairro,"
+ "tbl_cliente.cli_cidade,"
+ "tbl_cliente.cli_estado,"
+ "tbl_cliente.cli_num,"
+ "tbl_cliente.cli_cep,"
+ "tbl_cliente.cli_telefone"
+ "FROM tbl_vendas, tbl_cliente"
+ "INNER JOIN tbl_cliente ON tbl_vendas.fk_cliente = tbl_cliente.fk_id_cliente;"

Leandro Chiodini

Leandro Chiodini
Responder

Mais Posts

26/09/2017

Leandro Chiodini

Bom dia.
Se tu executar somente o codigo do sql no banco o que retorna? Direto no banco.

Acho que tem um ; a mais ali tb
Responder

26/09/2017

Leandro Chiodini

+ " tbl_cliente.cli_telefone, "
+" FROM "

Neste caso essa virgula depois de tbl_cliente.cli_telefone nao existe.
antes do From nao tem virgula.
Responder

26/09/2017

Fábio

Olá,
Retirei a virgula, agora ele está apresentando este erro :

mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECTtbl_vendas.pk_id_venda,tbl_vendas.fk_cliente,tbl_vendas.ven_data_venda,tbl' at line 1

Obrigado pelo ajuda!
Responder

26/09/2017

Leandro Chiodini

Poderias colar o codigo todo novamente pra ver como ficou.
Pois continua dando erro de sintaxe, que quer dizer que alguma coisa no codigo esta errado ainda.
Responder

26/09/2017

Fábio

public class DAOVendasCliente extends ConexaoMySql{

public ArrayList<ModelVendasCliente> getListaVendasCClienteDAO(){
ArrayList<ModelVendasCliente> listamodelVendasClientes = new ArrayList();
ModelVendas modelVendas = new ModelVendas();
ModelCliente modelCliente = new ModelCliente();
ModelVendasCliente modelVendasCliente = new ModelVendasCliente();
try {
this.conectar();
this.executarSQL(
"SELECT"
+ "tbl_vendas.pk_id_venda,"
+ "tbl_vendas.fk_cliente,"
+ "tbl_vendas.ven_data_venda,"
+ "tbl_vendas.ven_valor_liquido,"
+ "tbl_vendas.ven_valor_bruto,"
+ "tbl_vendas.ven_desconto,"
+ "tbl_cliente.fk_id_cliente,"
+ "tbl_cliente.cli_nome,"
+ "tbl_cliente.cli_endereço,"
+ "tbl_cliente.cli_bairro,"
+ "tbl_cliente.cli_cidade,"
+ "tbl_cliente.cli_estado,"
+ "tbl_cliente.cli_num,"
+ "tbl_cliente.cli_cep,"
+ "tbl_cliente.cli_telefone"
+ "FROM"
+ "tbl_vendas INNER JOIN tbl_cliente"
+ "ON tbl_vendas.fk_cliente = tbl_cliente.fk_id_cliente"
+";"
);

while(this.getResultSet().next()){
modelVendas = new ModelVendas();
modelCliente = new ModelCliente();
modelVendasCliente = new ModelVendasCliente();
//VENDAS
modelVendas.setIdVenda(this.getResultSet().getInt(1));
modelVendas.setCliente(this.getResultSet().getInt(2));
modelVendas.setVenDataVenda(this.getResultSet().getDate(3));
modelVendas.setVenValorLiquido(this.getResultSet().getDouble(4));
modelVendas.setVenValorBruto(this.getResultSet().getDouble(5));
modelVendas.setVenDesconto(this.getResultSet().getDouble(6));
//CLIENTES
modelCliente.setIdCliente(this.getResultSet().getInt(7));
modelCliente.setCliNome(this.getResultSet().getString(8));
modelCliente.setCliEndereço(this.getResultSet().getString(9));
modelCliente.setCliBairro(this.getResultSet().getString(10));
modelCliente.setCliCidade(this.getResultSet().getString(11));
modelCliente.setCliEstado(this.getResultSet().getString(12));
modelCliente.setCliNum(this.getResultSet().getString(13));
modelCliente.setCliCep(this.getResultSet().getString(14));
modelCliente.setCliTelefone(this.getResultSet().getString(15));

modelVendasCliente.setModelVendas(modelVendas);
modelVendasCliente.setModelCliente(modelCliente);

listamodelVendasClientes.add(modelVendasCliente);
}
}catch(Exception e){
e.printStackTrace();
}finally{
this.fecharConexao();
}
return listamodelVendasClientes;
}
}
Responder

26/09/2017

Fábio

Chiodini Obrigado Pela ajuda!!!

Encontrei o problema estava faltando espaço entre " "SELECT" e o + "FROM" "
Responder

26/09/2017

Fábio

Chiodini Obrigado Pela ajuda!!!

Encontrei o problema estava faltando espaço entre " "SELECT" e o + "FROM" "
Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar