Como unir dois Select em uma só Query?

23/10/2021

0

Oi,

Tenho aqui uma query SQL que me retorna listagem de pessoas, cargo, processo seletivo, classificação, cargo e datas de admissão e demissão.

SELECT
RHPESS_CONTRATO.NOME,
RHPESS_CONTRATO.APELIDO,
RHPESS_CONTRATO.SITUACAO_CONTRATO,
RHPESS_CONTRATO.COD_LOCAL1,
RHPESS_CONTRATO.COD_LOCAL2,
RHPESS_CONTRATO.COD_LOCAL3,
RHPESS_CONTRATO.CARGO "CARGO",
RHPESS_CONTRATO.MOTIVO_ADMISSAO,
RHPESS_CONTRATO.CLASSIFICACAO_CONCURSO,
RHPESS_CONTRATO.CARGO,
TO_CHAR(RHPESS_CONTRATO.DATA_ADMISSAO,''DD/MM/YYYY'') Dt_Admissao,
TO_CHAR(RHPESS_CONTRATO.DATA_RESCISAO,''DD/MM/YYYY'') Dt_Recisao

FROM
MGS.RHPESS_CONTRATO

WHERE
RHPESS_CONTRATO.COD_LOCAL1 = ''000100''
AND RHPESS_CONTRATO.TIPO_CONTRATO = ''0001''
AND RHPESS_CONTRATO.CLASSIFICACAO_CONCURSO IS NOT NULL
AND RHPESS_CONTRATO.MOTIVO_ADMISSAO = ''7245''

ORDER BY RHPESS_CONTRATO.MOTIVO_ADMISSAO ASC


Gostaria de incluir a informação de valor bruto mensal que esta nesta query
SELECT
RHMOVI_MOVIMENTO.CODIGO_CONTRATO,
RHMOVI_MOVIMENTO.ANO_MES_REFERENCIA,
RHMOVI_MOVIMENTO.VALOR_VERBA

FROM
CRHH.RHMOVI_MOVIMENTO

WHERE
RHMOVI_MOVIMENTO.CODIGO_EMPRESA = ''0001''
AND RHMOVI_MOVIMENTO.TIPO_CONTRATO = ''0001''
AND RHMOVI_MOVIMENTO.CODIGO_VERBA = ''4001''
AND RHMOVI_MOVIMENTO.TIPO_MOVIMENTO = ''ME''
AND TRUNC(RHMOVI_MOVIMENTO.ANO_MES_REFERENCIA,''MONTH'') = TRUNC(SYSDATE,''MONTH'')



Como eu faria para unir estas duas querys?
Marco Sousa

Marco Sousa

Responder

Posts

25/10/2021

Yuri Aguiar

Fala Marco, tudo em cima ?

Vou tentar de explicar de uma forma simples.
No sql você já deve ter visto ou ouvido falar do 'INNER JOIN'. A função dele é permitir a junção das tabelas, porém você deve ter um registro igual em ambas tabelas, como por exemplo o 'ID'.
Tendo isso em mente você pode fazer da seguinte forma:

A tabela 'RHPESS_CONTRATO' possui um 'ID', certo ?
E na tabela 'RHMOVI_MOVIMENTO' possui o 'ID' dos contrato.

Então basta fazer o 'INNER JOIN' citado acima. Ficaria assim

SELECT
    c.nome,
    c.apelido,
    c.situa
    c.situacao_contrato,
    c.cod_local1,
    c.cod_local2,
    c.cod_local3,
    c.cargo,
    motivo_admissao,
    c.classificacao_concurso,
    c.cargo,
    m.ano_mes_referencia,
    m.valor_verba,
    TO_CHAR(c.data_admissao, ''DD/MM/YYYY''),
    TO_CHAR(c.data_rescisao, ''DD/MM/YYYY'')
 
FROM
    rhpess_contrato c
 
INNER JOIN
    rhmovi_movimento m
ON
    c.id = m.id   

WHERE
    c.cod_local1 = ''000100''
    m.codigo_empresa = ''0001''
        AND c.tipo_contrato = ''0001''
        AND c.classificacao_concurso IS NOT NULL
        AND c.motivo_admissao = ''7245''
        AND m.codigo_verba = ''4001''
        AND m.Ttipo_movimento = ''ME''
        AND TRUNC(m.ano_mes_referencia, ''MONTH'') = TRUNC(SYSDATE,''MONTH'');


Espero que rode kkk e que te ajude.
Abraços
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar