Extrair o registro com p.DataCriacao mais recente sendo que o s.codworkflow e s.pv como concatenar.

19/07/2023

0

USE UF PROD;

SELECT
p.Id,
CASE
WHEN p.idstatus = 0 THEN 'A Processar'
WHEN p.idstatus = 1 THEN 'Erro'
WHEN p.idstatus = 2 THEN 'Sucesso'
WHEN p.idstatus = 3 THEN 'Em processamento'
WHEN p.idstatus = 4 THEN 'Sucesso'
WHEN p.idstatus = 5 THEN 'Grupo Invalido'
WHEN p.idstatus = 6 THEN 'Agrupamento não foi concluido'
ELSE 'NENHUM’ END AS Status,
CASE
WHEN p.idtipo = 1 AND s.TipoSolicitacao = 'AGRUPAMENTO' THEN 'Agrupamento'
WHEN p.idtipo = 1 AND s.TipoSolicitacao = 'DESAGRUPAMENTO' THEN 'Alteração de Grupo'
WHEN p.idtipo = 2 AND s.NumCliEspelho = 0 THEN 'Desagrupamento'
WHEN p.idtipo = 3 THEN 'Equiparação'
WHEN p.idtipo = 4 THEN 'Criação de Grupo'
WHEN p.idtipo = 5 THEN 'Comunicação'
WHEN p.idtipo = 6 THEN 'CONDICOES CONTRATO'
WHEN p.idtipo = 7 THEN 'CONTINGENCIA AGRUPAMENTO'
WHEN p.idtipo = 8 THEN 'CONTINGENCIA EQUIPARACAO'
WHEN p.idtipo = 9 THEN 'VALIDACAO AGRUPAMENTO'
ELSE ‘NENHUM’ END AS Solicitacao,
p. IdSolicitacao,
p.Descricao,
P.DataCriacao AS 'Data Processamento',
s.codworkflow,
s.pv,
s NumCliEspelho,
FORMAT(s.DataCriacao, 'dd/MM/yyyy') AS 'Data Solicitação'
FROM UF_PROD.Jornada Processamento p
LEFT JOIN UF_PROD. Jornada Solicitacao s on (p.IdSolicitacao. = s.Id)
WHERE p.DataCriacao > 2023-01-01 17:00:00.000
and p.Idtipo in (1,2)
and s. CodWorkflow = '8064000001kqTRG'
order by p.DataCriacao desc
Leandro Silva

Leandro Silva

Responder

Posts

19/07/2023

Arthur Heinrich

Estou entendendo que, no seu caso, a tabela "Jornada_Processamento" possui múltiplos registros com o mesmo "IdSolicitacao" e você quer apenas um, cuja data p.DataCriacao seja maior (mais recente).

Uma coisa que pode ser feito é encontrar o conjunto de tuplas (IdSolicitacao, DataCriacao) que representam o conjunto que você deseja e, em seguida, fazer o join com as outras tabelas.

SELECT ...
FROM
  ( select IdSolicitacao, max(DataCriacao) DataCriacao
    from UF_PROD.Jornada_Processamento
    where
      DataCriacao > 2023-01-01 17:00:00.000 and
      Idtipo in (1,2)
    group by IdSolicitacao ) ids
    JOIN UF_PROD.Jornada Processamento p
      on (p.IdSolicitacao = ids.IdSolicitacao and
          p.DataCriacao = ids.DataCriacao)
    LEFT JOIN UF_PROD. Jornada Solicitacao s
      on (p.IdSolicitacao. = s.Id)
WHERE
  p.Idtipo in (1,2) and
  s. CodWorkflow = '8064000001kqTRG'
order by p.DataCriacao desc

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar