pessoal, como eu resolvo uma consulta que tem inner join, usando o SQL do Access?
até onde eu sei e testei, o access não tem inner join…
Inner Join em Access!
4 Respostas
W
se nao tem o inner join faz que deve funcionar
select * from tb1, tb2 where tb1.pk = tb2.fk
hehehehe
O access tem innerjoin sim…
mas tem várias excessoes… hehehe
por exemplo… se vc usa inner noin não poderá usar um left join subsequente… mas aconselho mesmo fazer como nosso amigo fez acima… é o jeito que funciona melhor… embora o inner join deveria ser mais rápido…
abraços!
muito abrigado ae pessoal… :lol:
Segue um exemplo com INNER JOIN em ACCESS:
///////////////////////////////////////
// CONSULTA ///
///////////////////////////////////////
/*public ResultSet consulta(){
SQL = " SELECT id_venda, id_cliente, " +
"Right( v.data_emissao,2) & '/' & MID( v.data_emissao,5,2) & '/' & Left( v.data_emissao,4) AS data_emissao, " +
"Right( v.data_vencto,2) & '/' & MID( v.data_vencto,5,2) & '/' & Left( v.data_vencto,4) AS data_vencto, " +
"id_usuario, desconto, acrescimo, liquido, bruto " +
" FROM vendas " +
" WHERE id_venda = " + getIdVenda() ;
rs = connect.Conexao.execQuery(SQL);
return rs;
}*/
///////////////////////////////////////
// carregaVenda ///
///////////////////////////////////////
public ResultSet carregaVenda(){
String SQL = " " +
" SELECT v.id_venda, cli.id_cliente, cli.nome AS cliente, cli.Endereco, " +
"Right( v.data_emissao,2) & '/' & MID( v.data_emissao,5,2) & '/' & Left( v.data_emissao,4) AS data_emissao, " +
"Right( v.data_vencto,2) & '/' & MID( v.data_vencto,5,2) & '/' & Left( v.data_vencto,4) AS data_vencto, " +
" v.acrescimo, " +
" v.desconto, v.liquido, v.bruto, u.id_usuario, u.nome " +
" FROM ((vendas AS v INNER JOIN clientes AS cli " +
" ON v.id_cliente = cli.id_cliente)" +
" INNER JOIN usuarios AS u " +
" ON v.id_usuario= u.id_usuario)" ;
if(getIdVenda() != 0){
SQL +=" WHERE v.id_venda = " + getIdVenda();
}
else{
SQL +=" WHERE v.id_venda <> " + + getIdVenda();
}
if(getIdCliente() != 0){
SQL +=" AND v.id_cliente = " + getIdCliente();
}
else{
SQL +=" AND v.id_cliente <> " + + getIdCliente();
}
if(!getInicio().equals("") && !getFinal().equals("")){
SQL +=" AND v.data_emissao BETWEEN " + getInicio() +
" AND " + getFinal();
}
rs = connect.Conexao.execQuery(SQL);
return rs;
}
Criado 15 de dezembro de 2004
Ultima resposta 16 de dez. de 2004
Respostas 4
Participantes 4