Ir para conteúdo
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

Ajuda com T-SQL


Rhicky

Posts Recomendados


  • Tópicos Que Criei:  120
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  400
  • Conteúdo/Dia:  0.06
  • Reputação:   0
  • Pontos/Conquistas:  3.200
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  43

Tenho um empregado que no cadastro de histórico de seção (PFHSTSEC), consta as seguintes datas de alteração de histórico:

13/01/2006

01/04/2009

01/10/2009

Preciso verificar em qual seção o empregado está ou estava em uma determinada data, para tanto, desenvolvi a SQL abaixo:

----------------------

SELECT A.CHAPA, SUBSTR(B.DESCRICAO, 1, 6) AS CR

FROM PFHSTSEC A, PSECAO B

WHERE A.CHAPA = '000663'

AND A.CODCOLIGADA = 7

AND B.CODCOLIGADA = A.CODCOLIGADA

AND TO_CHAR(A.DTMUDANCA, 'MM') = 04

AND TO_CHAR(A.DTMUDANCA, 'YYYY') = 2009

AND A.CODSECAO = B.CODIGO

----------------------

Quando passo o parâmetro do mês e ano que existe no histórico, o sistema traz o resultado certinho, porém, quando passo um mês e ano que não existe no histórico ele traz vazio.

Preciso que a SQL verifique em qual CR o empregado estava no mês e ano informado.

Por exemplo: Na SQL acima, o sistema está retornando valor, pois o empregado possui histórico de mudança de seção na data 01/04/2009, porém se eu passar a data 01/02/2009, o sistema retorna vazio, pois não existe histórico de mudança nesse período. O que deve ser alterado na SQL para tratar esta situação ?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  61
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  659
  • Conteúdo/Dia:  0.11
  • Reputação:   1
  • Pontos/Conquistas:  3.883
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  41

assim dá certo:

select chapa,nome,

codsecao = (select codsecao

from pfhstsec hist1

where hist1.chapa = pfunc.chapa

and dtmudanca = (select max(hist2.dtmudanca)

from pfhstsec hist2

where hist2.chapa = hist1.chapa

and hist2.dtmudanca <= '20090101'))

from pfunc

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  120
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  400
  • Conteúdo/Dia:  0.06
  • Reputação:   0
  • Pontos/Conquistas:  3.200
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  43

assim dá certo:

select chapa,nome,

codsecao = (select codsecao

from pfhstsec hist1

where hist1.chapa = pfunc.chapa

and dtmudanca = (select max(hist2.dtmudanca)

from pfhstsec hist2

where hist2.chapa = hist1.chapa

and hist2.dtmudanca <= '20090101'))

from pfunc

OK Lugão, deu certo. Obrigado.

Aproveitando o post, agora preciso converter esta SQL para Oracle, alguém sabe informar como ficaria ?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  2
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  10
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  46

OK Lugão, deu certo. Obrigado.

Aproveitando o post, agora preciso converter esta SQL para Oracle, alguém sabe informar como ficaria ?

Rhicky,

Veja se desta forma atende você:

select chapa,nome, (select codsecao

from pfhstsec hist1

where hist1.chapa = pfunc.chapa

and dtmudanca in (select max(hist2.dtmudanca) from pfhstsec hist2

where hist2.chapa = hist1.chapa

and hist2.dtmudanca <= to_date('20090101', 'yyyymmdd'))) as "codsecao"

from pfunc

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.