JUNÇÃO DE TABELAS
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?
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
Curtidas 0
Melhor post
Leandro Chiodini
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;"
GOSTEI 1
Mais Respostas
Leandro Chiodini
26/09/2017
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
Se tu executar somente o codigo do sql no banco o que retorna? Direto no banco.
Acho que tem um ; a mais ali tb
GOSTEI 0
Leandro Chiodini
26/09/2017
+ " tbl_cliente.cli_telefone, "
+" FROM "
Neste caso essa virgula depois de tbl_cliente.cli_telefone nao existe.
antes do From nao tem virgula.
+" FROM "
Neste caso essa virgula depois de tbl_cliente.cli_telefone nao existe.
antes do From nao tem virgula.
GOSTEI 0
Fábio
26/09/2017
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!
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!
GOSTEI 0
Leandro Chiodini
26/09/2017
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.
Pois continua dando erro de sintaxe, que quer dizer que alguma coisa no codigo esta errado ainda.
GOSTEI 0
Fábio
26/09/2017
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;
}
}
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;
}
}
GOSTEI 0
Fábio
26/09/2017
Chiodini Obrigado Pela ajuda!!!
Encontrei o problema estava faltando espaço entre " "SELECT" e o + "FROM" "
Encontrei o problema estava faltando espaço entre " "SELECT" e o + "FROM" "
GOSTEI 0
Fábio
26/09/2017
Chiodini Obrigado Pela ajuda!!!
Encontrei o problema estava faltando espaço entre " "SELECT" e o + "FROM" "
Encontrei o problema estava faltando espaço entre " "SELECT" e o + "FROM" "
GOSTEI 0