Bom dia a todos.
Estou com uma consulta para me trazer dados em modo cascata, pois na consulta eu faço a verificação de id primario duas vezes em duas linhas diferentes, pois elas podem tender a ir para um fator comum ou não.
O CODTMV é o identificador do movimento, mas solicitação tem sua id primaria identificada pelo IDMOV, só que quando passa por um movimento ele passa para o posterior, porém tem casos q ele faz um salto
Ex.: do movimento 1.1.07 eu posso passar para o 1.1.11 ou saltar para o 1.1.08
SELECT
CASE WHEN SETE.CODTMV='1.1.07' THEN SETE.IDMOV END IDMOV7,
CASE WHEN SETE.CODTMV='1.1.07' THEN SETE.NUMEROMOV END NUMEROMOV7,
CASE WHEN SETE.CODTMV='1.1.07' THEN SETE.CODTMV END CODTMV7,
CASE WHEN ONZE.CODTMV='1.1.11' THEN ONZE.IDMOV END IDMOV11,
CASE WHEN ONZE.CODTMV='1.1.11' THEN ONZE.NUMEROMOV END NUMEROMOV11,
CASE WHEN ONZE.CODTMV='1.1.11' THEN ONZE.CODTMV END CODTMV11,
CASE WHEN OITO.CODTMV='1.1.08' THEN OITO.IDMOV END IDMOV8,
CASE WHEN OITO.CODTMV='1.1.08' THEN OITO.NUMEROMOV END NUMEROMOV8,
CASE WHEN OITO.CODTMV='1.1.08' THEN OITO.CODTMV END CODTMV8
FROM TMOV
LEFT JOIN TMOVRELAC F (NOLOCK) ON F.CODCOLORIGEM = TMOV.CODCOLIGADA AND TMOV.IDMOV = F.IDMOVORIGEM
LEFT JOIN TMOV SETE (NOLOCK) ON SETE.CODCOLIGADA = F.CODCOLDESTINO AND SETE.IDMOV = F.IDMOVDESTINO
LEFT JOIN TMOVRELAC G (NOLOCK) ON G.CODCOLORIGEM = SETE.CODCOLIGADA AND SETE.IDMOV = G.IDMOVORIGEM
LEFT JOIN TMOV ONZE (NOLOCK) ON ONZE.CODCOLIGADA = G.CODCOLDESTINO AND ONZE.IDMOV = G.IDMOVDESTINO
LEFT JOIN TMOVRELAC G1 (NOLOCK) ON G1.CODCOLORIGEM = ONZE.CODCOLIGADA AND ONZE.IDMOV = G1.IDMOVORIGEM
LEFT JOIN TMOV OITO (NOLOCK) ON ((OITO.CODCOLIGADA = G.CODCOLDESTINO AND OITO.IDMOV = G.IDMOVDESTINO)
OR (OITO.CODCOLIGADA = G1.CODCOLDESTINO AND OITO.IDMOV = G1.IDMOVDESTINO))
WHERE
OITO.CODCOLIGADA=1 AND
OITO.IDMOV=148969
Neste caso saltou do 1.1.07 para o 1.1.08 e eu queria visualizar apenas uma linha de preferencia a que pulou.
CharlesTI.