Inquiridor
Dúvida Query

Pergunta
-
Galera, bom dia!
Tenho uma tabela de Cliente, com os campos (Id_cliente,Nr_Cpf,Nm_Cliente....)
Tenho uma tabela de Telefone com os campos(Id_cliente, Id_Telefone,Telefone...)
Alguns clientes tem mais de dois telefone, ai na minha tabela tel fica com duas linhas, tel1, tel2
Minha query atual retorna duas linhas
Select* from tblCliente CLIENTE(NOLOCK) INNER JOIN
tblTelefone TEL(NOLOCK)ON CLIENTE.Id_Cliente = TEL.Id_Cliente
WHERE CLIENTE.Id_Cliente = 1230
Preciso criar uma query, que me retorne tudo em uma unica linha, o tel1 e o tel2, o que fazer?
Obrigado!
select * from tblCliente CLIENTE (NOLOCK) INNER JOIN
tblTelefone TEL (NOLOCK)ON CLIENTE.Id_Cliente = TEL.Id_Cliente
WHERE CLIENTE.Id_Cliente = idcliente
Todas as Respostas
-
Felipe,
Neste artigo acho que fala exatamente o que vc precisa, segue:
Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
-
Felipe,
Uma solução rápida é utilizar sub-query. No caso que você indicou, deve ficar assim:
---------------------------------------------------------------
CLIENTE.Id_cliente,
CLIENTE.Nr_Cpf,
CLIENTE.Nm_Cliente,
(SELECT TEL1.RESIDENCIAL FROM TBLTELEFONE TEL1 (NOLOCK) WHERE TEL1.ID_CLIENTE = CLIENTE.ID_CLIENTE) AS TEL_RESIDENCIAL,
(SELECT TEL2.COMERCIAL FROM TBLTELEFONE TEL2 (NOLOCK) WHERE TEL2.ID_CLIENTE = CLIENTE.ID_CLIENTE) AS TEL_COMERCIAL
FROM TBLCLIENTE CLIENTE(NOLOCK)
WHERE CLIENTE.Id_Cliente = 1230
---------------------------------------------------------------
Espero ter sido útil !
Durval Ramos
durval@msn.com- Sugerido como Resposta Durval RamosModerator segunda-feira, 3 de junho de 2013 15:54
-
-
-
José, boa tarde!
Funcionou, eu mudei (IsNull(T2.telefone,null)), coloquei null, estava aparencendo Erro ao converter tipo de dados varchar em numeric.
Não sei se vai interferir em algo, mas verifiquei aqui, os dados estão certo.
Uma dúvida que eu tenho, é possivel fazer essa query dinamica?
exemplo: no Inner Join,Left Join eu pego os dois telefone, alguns clientes tem mais de 3 telefone, vamos supor que coloco mais 1 Join, no caso ai ele pegaria os 3 tels, se meu cliente tiver mais de 3 tel, daria para ele pegar automatico os demais tel?
Obrigado!
-
-
-