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 

IsNull SqlServer 2008

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


Registrado: Segunda-Feira, 2 de Abril de 2012
Mensagens: 261
Localização: ribeirao preto

MensagemEnviada: Sex Mai 20, 2016 2:09 pm    Assunto: IsNull SqlServer 2008 Responder com Citação

Boa tarde,
Estou tentando enxugar um Select e descobri o IsNull. tenho o seguinte comando em uma tabela de movimento de estoque.

select i.codproduto,i.Condicao,i.item,i.Qdade,isnull(i.Vlr_Venda,i.vlr_custo)as Valor,isnull((i.qdade*i.Vlr_venda),(i.qdade*i.Vlr_Custo))as ValorTotal,
isnull(i.Cod_Cliente,i.Cod_Fornecedor),
i.Data,i.Documento,i.Cod_Empresa from Movimento_itens i
left join clientes c
on i.Cod_Cliente = c.Codigo
left join Fornecedores f
on i.Cod_Fornecedor = f.Codigo

Até ficou legal só que gostaria de mostrar somente uma coluna com o nome do cliente ou fornecedor, somente quando o cod_cliente <> null ou Cod_fornecedor <> null, mas sem precisar ter dois campos separados.

muito obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
imex
Moderador
Moderador


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

MensagemEnviada: Sex Mai 20, 2016 2:28 pm    Assunto: Responder com Citação

Boa tarde,

Experimente acrescentar na sua query trecho conforme o exemplo abaixo:

Código:
isnull(c.Nome, f.Nome) as Nome


Espero que ajude


Editado pela última vez por imex em Ter Mar 07, 2023 5:24 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
jescudeiro
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 2 de Abril de 2012
Mensagens: 261
Localização: ribeirao preto

MensagemEnviada: Sex Mai 20, 2016 4:56 pm    Assunto: Responder com Citação

boa tarde, muito obrigado pela resposta, tinha feito isso e deu certo. Mas me preocupei pq na minha tabela clientes e fornecedores tenho os campos RazaoSocial e Nome. Caso o cliente nao preencha justamente o campo nome que nessa consulta o resultado vai trazer o nome do fornecedor.

fiz isnull(c.codigo, f.Nome) as Nome mas nao rola ....

abraço
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
imex
Moderador
Moderador


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

MensagemEnviada: Sex Mai 20, 2016 5:48 pm    Assunto: Responder com Citação

Experimente mais ou menos dessa forma:

Código:
isnull(c.Nome, c.RazaoSocial, f.Nome, f.RazaoSocial) as Nome


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


Registrado: Segunda-Feira, 2 de Abril de 2012
Mensagens: 261
Localização: ribeirao preto

MensagemEnviada: Dom Mai 22, 2016 9:40 am    Assunto: Responder com Citação

Bom dia, obrigado pela atenção.
Não deu certo da a seguinte msg.
"A função isnull exige o(s) argumento(s) 2."

select i.codproduto,i.Condicao,i.item,i.Qdade,isnull(i.Vlr_Venda,i.vlr_custo) as Valor,
isnull((i.qdade*i.Vlr_venda),(i.Qdade*i.vlr_custo))as VlrTotal,
ISNULL(i.Cod_Cliente,i.Cod_Fornecedor) as Codigo,
i.Data,i.Documento,i.Cod_Empresa,
isnull(c.nome, c.RazaoSocial,f.Nome,f.razaosocial) as ClienteFornecedor
from Movimento_itens i
left join clientes c
on i.Cod_Cliente = c.Codigo
left join Fornecedores f
on i.Cod_Fornecedor = f.Codigo
where i.CodProduto =118
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
jescudeiro
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 2 de Abril de 2012
Mensagens: 261
Localização: ribeirao preto

MensagemEnviada: Dom Mai 22, 2016 10:21 am    Assunto: Responder com Citação

Bom dia, fui buscando em outros topicos e quase consegui.
O q acontece é q quando tem q mostrar o nome do cliente exibe o codigo.


select i.codproduto,i.Condicao,i.item,i.Qdade,isnull(i.Vlr_Venda,i.vlr_custo) as Valor,
isnull((i.qdade*i.Vlr_venda),(i.Qdade*i.vlr_custo))as VlrTotal,
i.Data,i.Documento,i.Cod_Empresa,
ISNULL(i.Cod_Cliente,i.Cod_Fornecedor) as Codigo,
COALESCE(isnull(cast(i.Cod_Cliente as varchar(65)),f.RazaoSocial),
isnull(cast(i.Cod_Fornecedor as varchar(65)),c.RazaoSocial))
as ClienteFornecedor
from Movimento_itens i
left join clientes c
on i.Cod_Cliente = c.Codigo
left join Fornecedores f
on i.Cod_Fornecedor = f.Codigo
where i.CodProduto =118
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
jescudeiro
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 2 de Abril de 2012
Mensagens: 261
Localização: ribeirao preto

MensagemEnviada: Dom Mai 22, 2016 11:00 am    Assunto: [RESOLVIDO] Responder com Citação

select i.codproduto,i.Condicao,i.item,i.Qdade,isnull(i.Vlr_Venda,i.vlr_custo) as Valor,
isnull((i.qdade*i.Vlr_venda),(i.Qdade*i.vlr_custo))as VlrTotal,
i.Data,i.Documento,i.Cod_Empresa,
ISNULL(i.Cod_Cliente,i.Cod_Fornecedor) as Codigo,
COALESCE(c.razaosocial,c.nome,f.razaosocial,f.nome) as ClienteFornecedor
from Movimento_itens i
left join clientes c
on i.Cod_Cliente = c.Codigo
left join Fornecedores f
on i.Cod_Fornecedor = f.Codigo
where i.CodProduto =87
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
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