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 

sql like erro

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
fabiodurgante
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 8 de Novembro de 2013
Mensagens: 197

MensagemEnviada: Sáb Ago 12, 2017 11:47 am    Assunto: sql like erro Responder com Citação

ola tenho o sql
Código:

and LOWER(cliente.NOME) LIKE '%'
   IBQuery1.sql.add('and LOWER(cliente.NOME) LIKE ' + QuotedStr(ansilowercase(nome+'%')));


se nao digitar nome nenhum deixar campo em branco ele retorna todos, ele filtra por nome do cliente tudo OK, porem se a tabela estiver sem nome cliente NULL ele nao retorna o select quero alguma maneira de retornar mesmo quando for null o nome, como poderia fazer ???
assim como esta se nao digitar nenhum nome ele retorna todas menos o NULL teria que incluir o NULL junto como poderia fazer ???
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: Dom Ago 13, 2017 8:58 pm    Assunto: Responder com Citação

Boa noite,

Para os casos em que o campo é null será necessário adicionar uma condição específica. Ex:

Código:
   IBQuery1.sql.add('and ( LOWER(cliente.NOME) LIKE ' + QuotedStr(ansilowercase(nome+'%')) );
   IBQuery1.sql.add('      OR cliente.NOME is null )' );


Espero que ajude

_________________
Assinatura: http://www.imoveisemexposicao.com.br/imoveis-venda-guarulhos-residencial-casa
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabiodurgante
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 8 de Novembro de 2013
Mensagens: 197

MensagemEnviada: Ter Ago 15, 2017 3:57 pm    Assunto: Responder com Citação

Código:

SELECT  venda.numero, cliente.nome, data
from venda
inner join cliente on venda.id = cliente.id

where data between '07.06.2017' and '07.06.2017'
or venda.id is null

group by  numero,nome, data



todo o meu select nao funciona nao mostra quando o a tabela venda esta null o id do cliente como poderia fazer para mostrar todos os dados retirando o inner join funciona porem ai nao consigo listar cliente
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Ter Ago 15, 2017 4:07 pm    Assunto: Responder com Citação

Tenta trocar o INNER por LEFT

o INNER JOIN retorna apenas os dados que existem tanto na tabela A quanto na tabela B, enquanto que o LEFT JOIN retorna todos os registros de A, independente se existem em B ou não.

outra coisa, para funcionar, você vai ter que inverter, invés de fazer um select em venda com um INNER JOIN em CLIENTE, você vai ter que fazer um select em cliente com um LEFT JOIN em venda
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabiodurgante
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 8 de Novembro de 2013
Mensagens: 197

MensagemEnviada: Ter Ago 15, 2017 4:38 pm    Assunto: Responder com Citação

ola inverti e coloquei left mas mesmo assim nao funciona nao retorna se for null existe outra maneira de fazer 2 select alguma coisa assim ????
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Ter Ago 15, 2017 4:59 pm    Assunto: Responder com Citação

Seu SQL ficou parecido com esse?
Código:
SELECT Venda.Numero,
       Cliente.Nome,
       Venda.Data
  FROM Cliente
       LEFT JOIN Venda
       ON Cliente.ID = Venda.ID
 WHERE (Venda.ID IS NULL)
    OR (Venda.Data BETWEEN '07.06.2017' AND '07.06.2017')
 GROUP BY Venda.Numero,
          Cliente.Nome,
          Venda.Data


A ligação entre as tabelas Venda e Cliente é pelo campo Venda.ID e Cliente.ID mesmo?

Explica melhor o que você quer trazer de dados, se possível, dê um exemplo de como está vindo e de como deveria vir.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabiodurgante
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 8 de Novembro de 2013
Mensagens: 197

MensagemEnviada: Ter Ago 15, 2017 9:09 pm    Assunto: Responder com Citação

isso ai cara funcionou certinho agradeço valeuuu
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
Página 1 de 1

 
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