Como unir dois Select em uma só Query?
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.
Gostaria de incluir a informação de valor bruto mensal que esta nesta query
Como eu faria para unir estas duas querys?
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
Curtidas 0
Respostas
Yuri Aguiar
23/10/2021
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
Espero que rode kkk e que te ajude.
Abraços
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
GOSTEI 0