아래의 레코드 별 레코드를 사용하여 데이터를 업데이트 할 수 없습니다.업데이트 문을 사용하여 필요한 결과를 가져올 수 없습니다.
필수 출력 : 환자가 처음 입원 한 후 병원에 여러 번 재 입원하는 경우 환자가 입원/재 입원을 여러 번 할 수 있으며 첫 방문 기록에는 재 입원 = 0 및 색인 = 1이 표시됩니다. 이 방문은 해당 환자의 Index_Admission을 조정해야합니다. 이 index_admission을 사용하면 30 일 재입도를 계산해야합니다.
전류 출력 :
계산 : 다음 admit_visit 날짜에 index_admission 방전 날짜 ,
1) DIFF 30 일 미만을 갖는 경우, 재 입원 = 1 및 색인 = 0
else readmission=0 and Index=1 should be update.
매번 이것을 확인하려면 최신 index_admission discharge_date를 사용하여 확인해야합니다.
이 결과를 얻으려면 논리 값 아래에 쓰지 만 첫 번째 색인 승인을 사용하여 30 일 사후 퇴직 후 재 입력 = 0 및 색인 = 1을 업데이트하고 있습니다.
UPDATE Readmission
SET Index_AMI = (CASE
WHEN DATEDIFF(DD, (SELECT
Sub.Max_Index_Dis
FROM (SELECT
Patient_ID,
MAX(Discharge_Date_Time) Max_Index_Dis
FROM Readmission
WHERE Index_AMI = 1 AND FPR.Patient_ID = Patient_ID
GROUP BY Patient_ID) Sub), FPR.Admit_Date_Time) <= 31 THEN 0 ELSE 1
END),
Is_AMI_Readmission = (CASE
WHEN DATEDIFF(DD, (SELECT
Sub.Max_Index_Dis
FROM (SELECT
Patient_ID,
MAX(Discharge_Date_Time) Max_Index_Dis
FROM Readmission
WHERE Index_AMI = 1 AND FPR.Patient_ID = Patient_ID
GROUP BY Patient_ID) Sub)
, FPR.Admit_Date_Time) <= 31 THEN 1 ELSE 0
END)
FROM Readmission FPR
WHERE fpr.index_ami IS NULL
예상 결과 :
이 문제를 해결하기 위해 도와주세요.
최고 감사합니다,
필요한 "예상"결과 (비어 있음)는 "예상치 못한"입니다. 현재 출력과 필요한 출력을 게시하고 sqlfiddle을 만들면 전체 도움이됩니다! –
올바른 정렬로 쿼리 만들기 ... – Jesuraja
집합 기반 업데이트를 사용해야합니까? 커서를 사용하면 훨씬 쉽게 할 수 있습니다. – adrianm