Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Prezados, boa tarde.
Tenho o seguinte script que me apresenta uma lista com todos os pacientes que tiveram mais de uma passagem por determinado setor. Abaixo segue exemplo de 4 registros do resultado:
11/2018 60574 211701 12/11/2018 01/11/2018 14/11/2018
11/2018 61038 211701 21/11/2018 01/11/2018 22/11/2018
10/2018 59506 208314 25/10/2018 01/10/2018 27/10/2018
10/2018 59703 208314 28/10/2018 01/10/2018 29/10/2018
Como podem ver tenho dois registros do atendimento 211701 e dois registros do atendimento 208314, cada um com um código de movimentação único (significando que o segundo registro é uma reinternação).
A minha necessidade é apresentar apenas o registro de reinternação que for em no máximo 2 dias, ou seja, a data da reinternação (DT_MOV_INT ) tem que ser menor que a data da liberação da primeira entrada (DT_LIB_MOV ) + 2 (DT_MOV_INT < DT_LIB_MOV + 2).
SELECT
TO_CHAR(MI.DT_MOV_INT,'MM/YYYY') MES
,MI.CD_MOV_INT
,MI.CD_ATENDIMENTO
,MI.DT_MOV_INT
,MI.HR_MOV_INT
,MI.DT_LIB_MOV
FROM MOV_INT MI
INNER JOIN
(
SELECT
--COUNT(M.CD_ATENDIMENTO),
M.CD_ATENDIMENTO
FROM MOV_INT M
INNER JOIN LEITO L
ON M.CD_LEITO = L.CD_LEITO
INNER JOIN UNID_INT U
ON L.CD_UNID_INT = U.CD_UNID_INT
WHERE
U.CD_UNID_INT = 67
AND M.CD_ATENDIMENTO IS NOT NULL
AND M.CD_LEITO_ANTERIOR NOT IN (243,242,166,165,164,163,162,161,160,159)
AND M.CD_LEITO_ANTERIOR IS NOT NULL
GROUP BY M.CD_ATENDIMENTO
HAVING COUNT(M.CD_ATENDIMENTO) > 1
ORDER BY M.CD_ATENDIMENTO DESC
) ATEND
ON MI.CD_ATENDIMENTO = ATEND.CD_ATENDIMENTO
INNER JOIN LEITO L -- tabela de leitos
ON MI.CD_LEITO = L.CD_LEITO
INNER JOIN UNID_INT U -- tabela de unidades de internação
ON L.CD_UNID_INT = U.CD_UNID_INT
WHERE U.CD_UNID_INT = 67
AND MI.CD_ATENDIMENTO IS NOT NULL
AND MI.CD_LEITO_ANTERIOR NOT IN (243,242,166,165,164,163,162,161,160,159)
AND MI.CD_LEITO_ANTERIOR IS NOT NULL
ORDER BY 3 DESC;Carregando comentários...