Extrair o registro com p.DataCriacao mais recente sendo que o s.codworkflow e s.pv como concatenar.
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
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
Curtidas 0
Respostas
Arthur Heinrich
19/07/2023
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.
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
GOSTEI 0