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

Vencimento aso


Posts Recomendados


  • Tópicos Que Criei:  24
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  82
  • Conteúdo/Dia:  0.03
  • Reputação:   2
  • Pontos/Conquistas:  652
  • Conteúdo Resolvido:  0
  • Dias Ganho:  2
  • Status:  Offline

Amigos estou com a consulta que se encontra abaixo, gostaria que aparecesse apenas a última data de consulta do ASO, porém se eu tenho alguns funcionários com consultas antigas

as suas datas também aparecem, como eu posso fazer com que apareça apenas a última consulta do funcionário?

ex:

Robson  21/08/2014

  22/08/2015

23/08/2016

 

dessas 3 queria que aparecesse apenas o 23/08/2016

 

 

SELECT P.CODCOLIGADA,
P.CHAPA,
P.NOME,
VC.DATACONSULTA [DATA ASO],
VC.DATACONSULTA+365 AS [VENC ASO], 
PS.DESCRICAO AS SETOR, 
P.CODFILIAL,
G.NOMEFANTASIA AS FILIAL 
FROM VCONSULTASPRONT VC INNER JOIN
PFUNC P ON P.CODPESSOA=VC.CODPESSOA INNER JOIN
PSECAO PS ON PS.CODIGO=P.CODSECAO AND PS.CODCOLIGADA=P.CODCOLIGADA INNER JOIN
GFILIAL G ON G.CODFILIAL=P.CODFILIAL AND G.CODCOLIGADA=P.CODCOLIGADA
WHERE
P.CODSITUACAO <> 'D'
AND P.CODCOLIGADA = 01 and ps.codigo=:P_codsecao

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  59
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  817
  • Conteúdo/Dia:  0.16
  • Reputação:   105
  • Pontos/Conquistas:  4.774
  • Conteúdo Resolvido:  0
  • Dias Ganho:  74
  • Status:  Offline
  • Idade:  61
  • Dispositivo:  Windows

Bom dia.

Usa a função MAX(DATA).

No teu caso: MAX(VC.DATACONSULTA) e

MAX(VC.DATACONSULTA) + 365

Repare no group by embaixo.  É necessário.

SELECT P.CODCOLIGADA,

P.CHAPA,
P.NOME,
MAX(VC.DATACONSULTA) [DATA ASO],
MAX(VC.DATACONSULTA) + 365 AS [VENC ASO], 
PS.DESCRICAO AS SETOR, 
P.CODFILIAL,
G.NOMEFANTASIA AS FILIAL 
FROM VCONSULTASPRONT VC INNER JOIN
PFUNC P ON P.CODPESSOA=VC.CODPESSOA INNER JOIN
PSECAO PS ON PS.CODIGO=P.CODSECAO AND PS.CODCOLIGADA=P.CODCOLIGADA INNER JOIN
GFILIAL G ON G.CODFILIAL=P.CODFILIAL AND G.CODCOLIGADA=P.CODCOLIGADA
WHERE
P.CODSITUACAO <> 'D'
AND P.CODCOLIGADA = 01 and ps.codigo=:P_codsecao

GROUP BY P.CODCOLIGADA, P.CHAPA, P.NOME, PS.DESCRICAO, P.CODFILIAL, G.NOMEFANTASIA

Editado por omar
acerto
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  24
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  82
  • Conteúdo/Dia:  0.03
  • Reputação:   2
  • Pontos/Conquistas:  652
  • Conteúdo Resolvido:  0
  • Dias Ganho:  2
  • Status:  Offline

Obrigado amigo, com você sempre aprendo muito.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  24
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  82
  • Conteúdo/Dia:  0.03
  • Reputação:   2
  • Pontos/Conquistas:  652
  • Conteúdo Resolvido:  0
  • Dias Ganho:  2
  • Status:  Offline

(RESOLVIDO)

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  24
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  82
  • Conteúdo/Dia:  0.03
  • Reputação:   2
  • Pontos/Conquistas:  652
  • Conteúdo Resolvido:  0
  • Dias Ganho:  2
  • Status:  Offline

 Amigo, havia me esquecido, e se eu quisesse mostrar as duas últimas datas de cada pessoa?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  59
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  817
  • Conteúdo/Dia:  0.16
  • Reputação:   105
  • Pontos/Conquistas:  4.774
  • Conteúdo Resolvido:  0
  • Dias Ganho:  74
  • Status:  Offline
  • Idade:  61
  • Dispositivo:  Windows

Fiz algo parecido um tempo:

SELECT *,
       DENSE_RANK() OVER (PARTITION BY insumos_compras.codigo ORDER BY insumos_compras.idoc DESC) AS RANK
FROM   INSUMOS_COMPRAS

WHERE (DENSE_RANK() OVER (PARTITION BY insumos_compras.codigo ORDER BY insumos_compras.idoc DESC)) <= 3

Com este select eu pegava as 3 últimas compras de cada insumo.   INSUMOS_COMPRAS era uma view com dados de diversas tabelas.

DENSE e DENSE_RANK:

https://msdn.microsoft.com/pt-br/library/ms189798.aspx

 

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.