Select e Subselect

SQL

11/01/2018

Pessoal, preciso de ajuda com uma query que sinceramente não sei como iniciar.

Tenho a seguinte query:
      
SELECT A.FIRST_NAME AS "NOME",
A.SURNAME AS "SOBRENOME",
A.ATTRIBUTE_1 AS "ID USUARIO",
A.STATUS AS "STATUS ID",
B.ID_CLARO_GESTOR AS "ID_GESTOR",
A.LOCATION_NAME AS "LOCALIDADE",
A.MANAGER_REF AS "GERENTE ATIVO"
FROM 
GSTI_INFRA_O.AR_USER_ATTRIBUTES A,
GSTI_INFRA_O.CLARO_DATA B
WHERE 
ATTRIBUTE_1 IS NOT null
AND A.ATTRIBUTE_1 - B.ID_CLARO_USUARIO
AND STATUS = ''A''
AND MANAGER_REF = ''0''
ORDER BY FIRST_NAME


Eu preciso do resultado da query acima E também, preciso saber se o resultado do campo ID_CLARO_GESTOR da query acima existe em uma outra tabela.

Alguém consegue ajudar?
Rodrigo Biaggio

Rodrigo Biaggio

Curtidas 0

Melhor post

Luiz Santos

Luiz Santos

11/01/2018

Rodrigo.

Tenta isso.


SELECT 
	A.FIRST_NAME AS "NOME",
	A.SURNAME AS "SOBRENOME",
	A.ATTRIBUTE_1 AS "ID USUARIO",
	A.STATUS AS "STATUS ID",
	B.ID_CLARO_GESTOR AS "ID_GESTOR",
	A.LOCATION_NAME AS "LOCALIDADE",
	A.MANAGER_REF AS "GERENTE ATIVO"
FROM
	GSTI_INFRA_O.AR_USER_ATTRIBUTES A 
	INNER JOIN GSTI_INFRA_O.CLARO_DATA B ON A.ATTRIBUTE_1 = B.ID_CLARO_USUARIO
WHERE
	ATTRIBUTE_1 IS NOT NULL 
AND STATUS = ''A''
AND MANAGER_REF = ''0''
AND EXISTS (SELECT 1 FROM [OUTRA TABELA] C WHERE C.ID_CLARO_GESTOR = B.ID_CLARO_GESTOR)
ORDER BY 
	FIRST_NAME



Grande abraço
GOSTEI 1

Mais Respostas

Rodrigo Biaggio

Rodrigo Biaggio

11/01/2018

Luis obrigado pelo retorno. Só alterei o campo<br />
<br />
C.ID_CLARO_GESTOR = B.ID_CLARO_GESTOR)<br />
<br />
Para<br />
<br />
C.ATTRIBUTE_1 = B.ID_CLARO_GESTOR)<br />
<br />
E tive o retorno. Pelo o que entendi esse retorno está me trazendo apenas os ID que existem naquela tabela, certo? <br /><br />
Eu consigo pegar também os que não estão? Eu estava pensando em fazer um case, por exemplo, caso ele exista retorne Verdadeiro, caso não existe me retorne um Falso mas não consegui fazer hahaha.
GOSTEI 0
Luiz Santos

Luiz Santos

11/01/2018

Cara, do jeito que fiz, ele está trazendo só quem existe.
Se colocar um NOT EXISTS, ele vai trazer só quem não existe.
Para fazer o que vc quer, vc, ao invés de usar o exists, teria que usar um LEFT JOIN entre as tabelas B e C.
Assim ele traria todo mundo, e você conseguiria fazer um CASE.

Espero ter ajudado.

Grande abraço
GOSTEI 1
Rodrigo Biaggio

Rodrigo Biaggio

11/01/2018

Desculpe Luis, eu vi depois e alterei.

Dessa forma já atende a minha necessidade.

Muito obrigado pela ajuda.
GOSTEI 0
Luiz Santos

Luiz Santos

11/01/2018

Tranquilo.
O importante é que te ajudou a resolver.

Grande abraço
GOSTEI 0
POSTAR