INNER JOIN - NOT UNIQUE TABLE/ALIAS

NETVOO 25/07/2015 19:03:00
#449226
Pessoal estou com dificuldade para fazer esse select integrado com outras tabelas, tentei de varias maneira mais n[ô]ao vai
Alguém pode dar um help aii

Ele sempre da erro --- > Not unique table/alias

strSQL = [Ô]SELECT vendasprodutos.Data, vendasprodutos.Desconto, [Ô] & _
[Ô]vendasprodutos.DescricaoProduto , vendasprodutos.CodGerente, vendasprodutos.VPHora, [Ô] & _
[Ô]vendasprodutos.CodCliCPF, vendasprodutos.Terminal, vendasprodutos.Devolucao, [Ô] & _
[Ô]vendasprodutos.TotalItens, vendasprodutos.Quantidade, vendasprodutos.ValorTotal, vendasprodutos.CodVenda, [Ô] & _
[Ô]usuarios.Codigo, usuarios.Usuario, usuarios.Usuario, clientes.Codigo, clientes.NumeroDoc, clientes.Nome [Ô] & _
[Ô]FROM VP AS vendasprodutos [Ô] & _
[Ô]INNER JOIN USG AS usuarios ON VP.CodGerente = USG .Codigo [Ô] & _
[Ô]INNER JOIN US AS usuarios ON VP.CodUsuario = US.Codigo [Ô] & _
[Ô]INNER JOIN CL AS clientes ON VP.CodCliCPF = CL.Codigo OR VP.CodCliCPF = CL.NumeroDoc [Ô] & _
[Ô]WHERE VP.Data>= [ô][Ô] & FormatarDataStrSQL(atxtDtInicial.Text) & [Ô][ô] AND VP.Data <= [ô][Ô] & FormatarDataStrSQL(atxtDtFinal.Text) & [Ô][ô] [Ô]
NETVOO 25/07/2015 19:53:45
#449229
Corrigido ...

Acessei o query do mysql e fui rodando o select e depurando os erros que no vb n[ô]ao depura e alinhei o código corretamente e deu certo, se alguém precisar funciona no mysql 5.5.


strSQL = [Ô]SELECT VP.Data AS Data, VP.Desconto AS Desconto, VP.DescricaoProduto AS DescricaoProduto, [Ô] & _
[Ô]VP.CodGerente AS CodGerente, VP.VPHora AS VPHora, VP.CodCliCPF AS CodCliCPF, VP.Terminal AS Terminal, [Ô] & _
[Ô]VP.Devolucao AS Devolucao, VP.Quantidade AS Quantidade, VP.ValorTotal AS ValorTotal, VP.CodVenda AS CodVenda, VP.VPHora AS VPHora, [Ô] & _
[Ô]US.Codigo AS Codigo, US.Usuario AS operador, USG.Usuario AS Gerente, CL.Codigo AS Codigo, CL.NumeroDoc AS NumeroDoc, CL.Nome AS Cliente [Ô] & _
[Ô]FROM vendasprodutos AS VP [Ô] & _
[Ô]INNER JOIN usuarios AS USG ON VP.CodGerente = USG.Codigo [Ô] & _
[Ô]INNER JOIN usuarios AS US ON VP.CodUsuario = US.Codigo [Ô] & _
[Ô]INNER JOIN clientes AS CL ON VP.CodCliCPF = CL.Codigo [Ô] & _
[Ô]OR VP.CodCliCPF = CL.NumeroDoc [Ô] & _
[Ô]WHERE VP.Data>= [ô][Ô] & FormatarDataStrSQL(atxtDtInicial.Text) & [Ô][ô] AND VP.Data <= [ô][Ô] & FormatarDataStrSQL(atxtDtFinal.Text) & [Ô][ô] [Ô]
KERPLUNK 25/07/2015 19:59:09
#449231
Você está fazendo incluindo a mesma tabela(usuarios) duas vezes no produto cartesiano, por isso está tendo esse erro. Faça assim:

strSQL = [Ô]SELECT vendasprodutos.Data, vendasprodutos.Desconto, [Ô] & _
[Ô]vendasprodutos.DescricaoProduto , vendasprodutos.CodGerente, vendasprodutos.VPHora, [Ô] & _
[Ô]vendasprodutos.CodCliCPF, vendasprodutos.Terminal, vendasprodutos.Devolucao, [Ô] & _
[Ô]vendasprodutos.TotalItens, vendasprodutos.Quantidade, vendasprodutos.ValorTotal, vendasprodutos.CodVenda, [Ô] & _
[Ô]usuarios.Codigo, usuarios.Usuario, usuarios.Usuario, clientes.Codigo, clientes.NumeroDoc, clientes.Nome [Ô] & _
[Ô]FROM VP AS vendasprodutos [Ô] & _
[Ô]INNER JOIN USG AS usuarios ON VP.CodGerente = USG .Codigo AND VP.CodUsuario = US.Codigo[Ô] & _
[Ô]INNER JOIN CL AS clientes ON VP.CodCliCPF = CL.Codigo OR VP.CodCliCPF = CL.NumeroDoc [Ô] & _
[Ô]WHERE VP.Data>= [ô][Ô] & FormatarDataStrSQL(atxtDtInicial.Text) & [Ô][ô] AND VP.Data <= [ô][Ô] & FormatarDataStrSQL(atxtDtFinal.Text) & [Ô][ô] [Ô]


Mais uma coisa, não use concatenação de strings para incluir os parâmetros da cláusula [Ô]WHERE[Ô], use parametrização para se prevenir de SQL Injection.
Tópico encerrado , respostas não são mais permitidas