GARANTIR DESCONTO

Fórum Select e Subselect #590487

11/01/2018

0

SQL

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

Responder

Post mais votado

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

Luiz Santos

Luiz Santos
Responder

Gostei + 1

Mais Posts

11/01/2018

Rodrigo Biaggio

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.
Responder

Gostei + 0

11/01/2018

Luiz Santos

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
Responder

Gostei + 1

11/01/2018

Rodrigo Biaggio

Desculpe Luis, eu vi depois e alterei.

Dessa forma já atende a minha necessidade.

Muito obrigado pela ajuda.
Responder

Gostei + 0

11/01/2018

Luiz Santos

Tranquilo.
O importante é que te ajudou a resolver.

Grande abraço
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar