Meruem_Chimera

Somente 1 Contato como resolver

2 posts in this topic

Olá pessoal, estou com a seguinte dúvida, preciso fazer uma Table Clientes onde a mesma será preenchida a partir de uma query, porém não estou conseguindo limitar os contatos a 1 apenas, exemplo Cliente possui vários contatos, gostaria que na query o resultado fosse o nome do cliente e o primeiro telefone/contato q ele possui

Segue exemplo da query q estou fazendo

SELECT DISTINCT 

	tabPessoas.id_pessoa AS CODIGO,	

	tabPessoas.NOME AS NOME,	

	tabPessoas_Juridica.FANTASIA AS FANTASIA,	

	tabPessoas_Enderecos.ENDERECO AS ENDERECO,	

	tabPessoas_Enderecos.BAIRRO AS BAIRRO,	

	tabMun.municipio AS CIDADE,	

	tabPessoas_Enderecos.CEP AS CEP,	

	tabPessoas_Contatos.conteudo  AS conteudo,

	CASE tabPessoas.TIPO  WHEN  1 THEN tabPessoas_Fisica.RG  WHEN  2 THEN tabPessoas_Juridica.INSCRICAO  END  AS Formula1,	

	tabPessoas_Fisica.CPF AS CPF,	

	tabPessoas_Juridica.cnpj AS cnpj,	

	tabPessoas_CriteriosFinanceiros.TOLERANCIA AS TOLERANCIA,	

	tabPessoas_CriteriosFinanceiros.CREDITO AS CREDITO

FROM 

		tabPessoas

		LEFT OUTER JOIN tabPessoas_CriteriosFinanceiros ON tabPessoas.id_pessoa = tabPessoas_CriteriosFinanceiros.fk_id_pessoa

		LEFT OUTER JOIN tabPessoas_Juridica 			ON tabPessoas.id_pessoa = tabPessoas_Juridica.fk_id_pessoa 

		LEFT OUTER JOIN tabPessoas_Enderecos 			ON tabPessoas.id_pessoa = tabPessoas_Enderecos.fk_id_pessoa

		LEFT OUter join tabpessoas_contatos             on tabpessoas.id_pessoa = tabpessoas_contatos.fk_id_pessoa

		LEFT OUTER JOIN tabMun                          ON tabMun.codigo_municipio = tabPessoas_Enderecos.fk_id_codmun

	    LEFT OUTER JOIN tabPessoas_Fisica             	ON tabPessoas_Fisica.fk_id_naturalidade = tabMun.codigo_municipio

Se eu remover da query acima o campo tabPessoas_contatos.conteudo e o respectivo LEFT OUTER JOIN tabpessoas_contatos on tabpessoas.id_pessoa = tapessoas_contatos.fk_id_pessoa o resultado são 83 registros q é o correto, porém da forma q esta mostra 92 registros pois mostra os clientes e seus contatos q em alguns casos tem clientes com + de 1 contato, o q preciso é q mostre o primeiro telefone/contato/ocorrência do cliente, ficando 83 registros apenas.

Tentei fazer uma subquery digamos assim ali no campo contato ai traz repetido o nr do telefone.

 

Grata

Share this post


Link to post
Share on other sites

Olá,

Acredito q da seguinte forma resolva sua questão:

SELECT  
	tabPessoas.id_pessoa AS "Código",	
	tabPessoas.NOME AS "Nome/Razão",	
	CASE tabPessoas_Juridica.FANTASIA   WHEN NULL THEN '' ELSE tabPessoas_Juridica.FANTASIA   END AS "Fantasia",	
	CASE tabPessoas_Enderecos.ENDERECO WHEN NULL THEN '' ELSE tabPessoas_Enderecos.ENDERECO END AS "Endereço",	
	CASE tabPessoas_Enderecos.BAIRRO    WHEN NULL THEN '' ELSE tabPessoas_Enderecos.BAIRRO   END AS "Bairro",	
	CASE tabMun.municipio                 WHEN NULL THEN '' ELSE tabMun.municipio                END AS "Cidade",	
	case tabPessoas_Enderecos.CEP        WHEN NULL THEN '' ELSE tabPessoas_Enderecos.CEP      END AS "CEP",	
	CASE tabPessoas.TIPO  
		WHEN  1 THEN 
			CASE tabPessoas_Fisica.RG           WHEN NULL THEN '' ELSE tabPessoas_Fisica.RG END
		WHEN  2 THEN 
			CASE tabPessoas_Juridica.INSCRICAO WHEN NULL THEN '' ELSE tabPessoas_Juridica.INSCRICAO END
	END  AS "RG/Inscrição",	
	CASE tabPessoas.TIPO  
		WHEN  1 THEN 
			CASE tabPessoas_Fisica.CPF  WHEN NULL THEN '' ELSE tabPessoas_Fisica.CPF END
		WHEN  2 THEN 
			CASE tabPessoas_Juridica.CNPJ WHEN NULL THEN '' ELSE tabPessoas_Juridica.CNPJ END
	END  AS "CPF/CNPJ",	
	CASE tabPessoas_CriteriosFinanceiros.TOLERANCIA WHEN  null THEN '' ELSE tabPessoas_CriteriosFinanceiros.TOLERANCIA END  AS "Prazo",	
	CASE tabPessoas_CriteriosFinanceiros.CREDITO    WHEN  null THEN '' ELSE tabPessoas_CriteriosFinanceiros.CREDITO    END  AS "Crédito",
	CASE tabPessoas_Contatos.conteudo                WHEN  null THEN '' ELSE tabPessoas_Contatos.conteudo                END  AS "Telefone/Contato"
FROM 
     tabPessoas
	    LEFT OUTER JOIN tabPessoas_CriteriosFinanceiros ON tabPessoas.id_pessoa = tabPessoas_CriteriosFinanceiros.fk_id_pessoa
	    LEFT OUTER JOIN tabPessoas_Fisica               ON tabPessoas.id_pessoa = tabPessoas_Fisica.fk_id_pessoa
	    LEFT OUTER JOIN tabPessoas_Juridica 		   	  ON tabPessoas.id_pessoa = tabPessoas_Juridica.fk_id_pessoa 
	    LEFT OUTER JOIN tabPessoas_Enderecos 		  ON tabPessoas.id_pessoa = tabPessoas_Enderecos.fk_id_pessoa
	    LEFT OUTER JOIN tabMun                          ON tabMun.codigo_municipio = tabPessoas_Enderecos.fk_id_codmun
	    LEFT OUTER JOIN tabPessoas_Fisica               ON tabPessoas_Fisica.fk_id_naturalidade = tabMun.codigo_municipio
	    LEFT OUTER JOIN tabPessoas_Contatos             ON tabPessoas.id_pessoa = tabPessoas_Contatos.id_pessoas_contato 

 

1 person likes this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now