SELECT PARA TRAZER OS 3 ÚLTIMOS SALARIOS do funcionario

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
katiacd
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 37
Registrado em: Seg, 09 Mai 2016 3:07 pm

Bom dia pessoal!

Estou com um problema em trazer os ultimos 3 meses de salarios de um funcionario:

Exemplo:

Conigo trazer :


mês DEZEMBRO -> Digito mês (12) e ano (2018) fica perfeito:

12/2018 ok 11/2018 ok 10/2018 ok

mês Janeiro -> Digito mês (01) e ano (2019) erro assim:


01/2019 ok 11/2018 ok 12/2019 (errado )



mês Fecereiro -> Digito mês (02) e ano (2019) erro assim:

02/2019 ok 12/2018 ok 01/2018 (errado )


alguém pode me ajudar como trazer certo ? Lembrando que na minha tabela, o campo mês é numerico e campo data também numerico. Converti, mas não da certo.


Obrigada

CRISTINE
Avatar do usuário
tiago_pimenta
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 213
Registrado em: Qua, 29 Jun 2011 9:49 am
Localização: Barretos / SP

Cristiane,

Coloca o select que você está fazendo, fica mais fácil para nós lhe ajudarmos.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Exato...
e também manda pra gente um DESC da sua tabela.
katiacd
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 37
Registrado em: Seg, 09 Mai 2016 3:07 pm
Cristine

Analista Pleno

Boa tarde prezados! Obrigada pelo retorno de vocês.

Utilizo estas 2 subqueries para trazer o mês 1 / mês 2

Selecionar tudo

,          (select  max(to_char(add_months(trunc( TO_DATE($P{pMes},'MM') ,'mm'),rownum-3),'mm'))
                    ||' / '|| TO_CHAR(ADD_MONTHS(TO_DATE('03/' || '2019', 'MM/YYYY'), -2),'MM/YYYY'))mes1
            from    reg_funcionario r
            where   r.ano_calculo = $P{pAno}
            and     r.mês_calculo = $P{pMes}
            and     r.cod_func = $P{pCodFunc}
            and     r.tipo_folha = 1) mes1

Selecionar tudo

,         (select   min(to_char(add_months(trunc( TO_DATE($P{pMes},'MM') ,'mm'),rownum-2),'mm'))
                    ||' / '||TO_CHAR(ADD_MONTHS(TO_DATE('04/' || '2019', 'MM/YYYY'), -2),'MM/YYYY')mes2
            from    reg_funcionario r
            where   r.ano_calculo = $P{pAno}
            and     r.mês_calculo = $P{pMes}
            and     r.cod_func = $P{pCodFunc}
            and     r.tipo_folha = 1) mes2
obrigada
Anexos
funcionario
funcionario
tabela_funcionario.png (7.37 KiB) Exibido 3273 vezes
katiacd
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 37
Registrado em: Seg, 09 Mai 2016 3:07 pm
Cristine

Analista Pleno

Resolvido....

Grata
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Oi katiacd

Se possível, manda a solução pro forum, daí mais gente pode se beneficiar da solução!
:-o
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes