Jump to content
Fórum Script Brasil
  • 0

Criar Consulta com o ultimo, penultimo e antepenultimo registro de um determinado ID


Wagner Sena e Senna

Question

Prezados, bom dia!

Estou precisando criar uma consulta no qual eu possa agrupar um determinado ID e fazer com que os registros que estão em linhas sejam transformados em Colunas, contudo que sejam apenas os 3 ultimos, sendo o ultimo, o penultimo e o anti penultimo

a tabela que tenho é: 

image.png.ed5cfe887aa5b63f33d3feb1956cc500.png

 

Preciso que a consulta agrupe pelo idProcessoJudicial e crie as colunas UltimoAndamento, PenultimoAndamento e AntepenultimoAndamento

Vejam que essas informações são linhas, e na "agrupação" eu preciso usar a ordem decrescente do campo idProcessoJudicialMovimentacao

Nesse caso da imagem, eu precisaria que o ID 3386 me mostrasse a seguinte resolução:

idProcessoJudicial     UltimoAndamento     PenultimoAndamento    AntepenultimoAndamento

3386                            20/05/2023              20/05/2023                     20/05/2023 

 

no ultimo andamento a data foi do idProcessoJudicialMovimentacao = 6, no PenultimoAndamento andamento a data foi do idProcessoJudicialMovimentacao = 5 e no AntepenultimoAndamento a data foi do idProcessoJudicialMovimentacao = 4

estou usando o campo DataMovimentação

Poderiam me salvar? já tentei de tudo!

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0
Em 18/08/2023 em 22:08, Wagner Sena e Senna disse:

 

Preciso que a consulta agrupe pelo idProcessoJudicial e crie as colunas UltimoAndamento, PenultimoAndamento e AntepenultimoAndamento

Vejam que essas informações são linhas, e na "agrupação" eu preciso usar a ordem decrescente do campo idProcessoJudicialMovimentacao

Nesse caso da imagem, eu precisaria que o ID 3386 me mostrasse a seguinte resolução:

idProcessoJudicial     UltimoAndamento     PenultimoAndamento    AntepenultimoAndamento

  geometry dash

 

A data era idProcessoJudicialMovimentacao = 6 no último andamento, 5 no penúltimo andamento e 4 no antepenúltimo andamento.

Edited by wilkinson wilfrid
Link to comment
Share on other sites

  • 0
Em 18/08/2023 em 23:08, Wagner Sena e Senna disse:

Prezados, bom dia!

Estou precisando criar uma consulta no qual eu possa agrupar um determinado ID e fazer com que os registros que estão em linhas sejam transformados em Colunas, contudo que sejam apenas os 3 ultimos, sendo o ultimo, o penultimo e o anti penultimo

a tabela que tenho é: 

image.png.ed5cfe887aa5b63f33d3feb1956cc500.png

 

Preciso que a consulta agrupe pelo idProcessoJudicial e crie as colunas UltimoAndamento, PenultimoAndamento e AntepenultimoAndamento

Vejam que essas informações são linhas, e na "agrupação" eu preciso usar a ordem decrescente do campo idProcessoJudicialMovimentacao

Nesse caso da imagem, eu precisaria que o ID 3386 me mostrasse a seguinte resolução:

idProcessoJudicial     UltimoAndamento     PenultimoAndamento    AntepenultimoAndamento

3386                            20/05/2023              20/05/2023                     20/05/2023 

 

no ultimo andamento a data foi do idProcessoJudicialMovimentacao = 6, no PenultimoAndamento andamento a data foi do idProcessoJudicialMovimentacao = 5 e no AntepenultimoAndamento a data foi do idProcessoJudicialMovimentacao = 4

estou usando o campo DataMovimentação

Poderiam me salvar? já tentei de tudo!half body sexdoll

Para realizar essa consulta, você pode usar a cláusula ROW_NUMBER() para numerar as linhas em ordem decrescente de idProcessoJudicialMovimentacao e, em seguida, filtrar os três últimos registros para cada grupo de idProcessoJudicial. Em seguida, você pode usar a cláusula CASE para transformar essas linhas em colunas. Aqui está um exemplo de como isso pode ser feito em SQL:

WITH MovimentacoesNumeradas AS (
    SELECT
        idProcessoJudicial,
        DataMovimentacao,
        ROW_NUMBER() OVER (PARTITION BY idProcessoJudicial ORDER BY idProcessoJudicialMovimentacao DESC) AS NumLinha
    FROM
        SuaTabela
)
SELECT
    idProcessoJudicial,
    MAX(CASE WHEN NumLinha = 1 THEN DataMovimentacao END) AS UltimoAndamento,
    MAX(CASE WHEN NumLinha = 2 THEN DataMovimentacao END) AS PenultimoAndamento,
    MAX(CASE WHEN NumLinha = 3 THEN DataMovimentacao END) AS AntepenultimoAndamento
FROM
    MovimentacoesNumeradas
WHERE
    NumLinha <= 3
GROUP BY
    idProcessoJudicial;

Substitua "SuaTabela" pelo nome da sua tabela. Este SQL agrupa os registros pelo idProcessoJudicial, numerando as linhas em ordem decrescente de idProcessoJudicialMovimentacao. Em seguida, ele seleciona apenas as três últimas linhas para cada grupo de idProcessoJudicial e usa a cláusula CASE para transformar essas linhas em colunas, retornando os resultados desejados.

Edited by celemtine
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.8k
×
×
  • Create New...