ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Duvida MYSQL curva ABC clientes
Ir à página Anterior  1, 2
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Mar 09, 2018 4:45 pm    Assunto: Responder com Citação

O Left Join foi utilizado porque você quer que a query retorne os clientes sem movimento. Com ele os dados da tabela Clientes são retornados mesmo que não existam registros na tabela Movimentoam para o cliente.

Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
grsoft
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 10 de Abril de 2006
Mensagens: 107

MensagemEnviada: Sex Mar 09, 2018 7:08 pm    Assunto: Responder com Citação

eu perguntei pq antes da última sql, mesmo com o left join, ele não mostrava os clientes sem movimentação, agora, depois da nova sql, ele mostra tudo mesmo com o inner join.

imex escreveu:
O Left Join foi utilizado porque você quer que a query retorne os clientes sem movimento. Com ele os dados da tabela Clientes são retornados mesmo que não existam registros na tabela Movimentoam para o cliente.

Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Mar 09, 2018 8:20 pm    Assunto: Responder com Citação

Não tenho nenhuma experiência com o MySQL mas acho que os clientes sem movimento só deveriam ser retornados nas versões com o Left Join, tanto na versão abaixo:

Código:
left join Movimentoam as m
    on m.CodCli = c.Cod
where
    m.DATAHORACONCLUSAO between '2018-01-01' and '2018-01-31') or (m.DATAHORACONCLUSAO is null)
group by c.Cod


como na versão abaixo:

Código:
left join Movimentoam as m
    on m.CodCli = c.Cod and
       m.DATAHORACONCLUSAO between '2018-01-01' and '2018-01-31'


E acho que com o Inner Join deveriam ser retornados somente os clientes com movimento.
Isso tudo para ficar de acordo com o padrão da linguagem SQL.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Ir à página Anterior  1, 2
Página 2 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB