Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vadio

QUERY não funciona da forma q eu quero

Recommended Posts

pessoal, fiz uma query normal com join coisa simples

nessa query era pra listar quem nao tinha cpf cadastrado e quem não tinha nenhum pedido além de mostrar sua especialidade

consegui quase isso

mas ele aparece mtas vzs a mesma pessoa

tentei colocar um distinct mas não funcionou.

 

SELECT DISTINCT tbClientes.codigo, tbClientes.nome, tbEspecialidades.especialidade
 FROM tbClientes
INNER JOIN tbEspecialidades 
 on tbClientes.especialidade = tbEspecialidades.codigo
INNER JOIN tbPedidos 
 on tbPedidos.cliente <> tbClientes.cliente
WHERE tbCliente.cpf=null or tbCliente.cpf ='..-'
não me perguntem pq "..-" qd peguei ja estava assim...

 

Qualquer dúvida perguntem pls.

Desde já agradeço a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poe um group by

 

SELECT DISTINCT tbClientes.codigo, tbClientes.nome, tbEspecialidades.especialidade

FROM tbClientes

INNER JOIN tbEspecialidades

on tbClientes.especialidade = tbEspecialidades.codigo

INNER JOIN tbPedidos

on tbPedidos.cliente <> tbClientes.cliente

WHERE tbCliente.cpf=null or tbCliente.cpf ='..-'

 

group by bClientes.codigo, tbClientes.nome, tbEspecialidades.especialidade, tbCliente.cpf, tbCliente.cpf

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele não trouxe os registros com CPF null mesmo eu tendo colocado a condição coluna=null (não sei se é assim q faz essa comparação) e não sei se a lógica está certa.. mas

inner join pedidos p on p.cod_cliente <> clientes.cod_cliente não me trouxe nada..

pq é assim

preciso trazer todos os q não tem cpf e nem pedidos

 

para esse select uso 3 tabelas clientes, especialidades(todo cliente tem especialidade não posso so simplesmente passar o cod no relatório) e produtos.

tem idéia de como fazer isso? se souber me explicar é melhor afinal to aqui pra aprender e não copiar =D

 

MUITO OBRIGADO!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigo.

Qdo você usa o where para trazer os registros null, coloque assim: campo is null, evite o uso do sinal de igual

o inner join aparentemente esta correto. Qdo se tem muitos registros, eu faço da seguinte maneira:

 

uma view com todos os dados, seria mais ou menos assim:

CREAT VIEW TESTE

 

SELECT TOP 100 PERCENT tbClientes.codigo, tbClientes.nome, tbEspecialidades.especialidade

FROM tbClientes

INNER JOIN tbEspecialidades

on tbClientes.especialidade = tbEspecialidades.codigo

INNER JOIN tbPedidos

on tbPedidos.cliente <> tbClientes.cliente

 

 

e agora eu faço um select a partir desta view, mas com os comandos de where e group

 

SELECT tbClientes.codigo, tbClientes.nome, tbEspecialidades.especialidade

WHERE (tbCliente.cpf IS NULL or tbCliente.cpf ='..-')

group by bClientes.codigo, tbClientes.nome, tbEspecialidades.especialidade, tbCliente.cpf, tbCliente.cpf

 

Tenta fazer desta forma e ve o q retorna, eh um pouco trabalhoso, mas você elimina alguns erros.

 

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

até tentei fazer isso mas nunca usei views alias.. nunca criei views, deu um erro de sintaxe linha 3 perto de SELECT

a estrutura de tabelas está certa.

 

como posso corrigir iste erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o comando que passei estava errado. Tem no books on line caso precise. :)

o correto é:

 

CREATE VIEW VIEW1

 

AS

 

 

SELECT TOP 100 PERCENT tbClientes.codigo, tbClientes.nome, tbEspecialidades.especialidade

FROM tbClientes

INNER JOIN tbEspecialidades

on tbClientes.especialidade = tbEspecialidades.codigo

INNER JOIN tbPedidos

on tbPedidos.cliente <> tbClientes.cliente

 

 

 

Agora vai ^^

 

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.