select * from (
SELECT
P.PATIENT_ID,
P.VISIT_ID,
PM.NAME,
PM.SEX,
P.ADMISSION_DATE_TIME,
( SELECT TOP 1 DP.DEPT_NAME FROM DEPT_DICT DP WHERE DP.DEPT_CODE = P.DEPT_ADMISSION_TO ) AS DEPT_ADM,
P.DISCHARGE_DATE_TIME,
( SELECT TOP 1 DP.DEPT_NAME FROM DEPT_DICT DP WHERE DP.DEPT_CODE = P.DEPT_DISCHARGE_FROM ) AS DEPT_DIS,
DATEDIFF( DAY, P.ADMISSION_DATE_TIME, P.DISCHARGE_DATE_TIME ) AS INPAT_DAYS,
P.DOCTOR_IN_CHARGE
--datediff(day, P.ADMISSION_DATE_TIME,P.DISCHARGE_DATE_TIME) as zyts
FROM
PAT_VISIT P
INNER JOIN PAT_MASTER_INDEX PM ON PM.PATIENT_ID = P.PATIENT_ID
WHERE
select * from (
SELECT
P.PATIENT_ID,
P.VISIT_ID,
PM.NAME,
PM.SEX,
P.ADMISSION_DATE_TIME,
( SELECT TOP 1 DP.DEPT_NAME FROM DEPT_DICT DP WHERE DP.DEPT_CODE = P.DEPT_ADMISSION_TO ) AS DEPT_ADM,
P.DISCHARGE_DATE_TIME,
( SELECT TOP 1 DP.DEPT_NAME FROM DEPT_DICT DP WHERE DP.DEPT_CODE = P.DEPT_DISCHARGE_FROM ) AS DEPT_DIS,
DATEDIFF( DAY, P.ADMISSION_DATE_TIME, P.DISCHARGE_DATE_TIME ) AS INPAT_DAYS,
P.DOCTOR_IN_CHARGE
--datediff(day, P.ADMISSION_DATE_TIME,P.DISCHARGE_DATE_TIME) as zyts
FROM
PAT_VISIT P
INNER JOIN PAT_MASTER_INDEX PM ON PM.PATIENT_ID = P.PATIENT_ID
WHERE
P.DISCHARGE_DATE_TIME >= '2016-01-01'
AND P.DISCHARGE_DATE_TIME < = '2023-07-10'
AND DATEDIFF( DAY,P.ADMISSION_DATE_TIME, P.DISCHARGE_DATE_TIME ) >= 30
) t order by inpat_days desc
P.DISCHARGE_DATE_TIME >= '2016-01-01'
AND P.DISCHARGE_DATE_TIME < = '2023-07-10'
AND DATEDIFF( DAY,P.ADMISSION_DATE_TIME, P.DISCHARGE_DATE_TIME ) >= 30
) t order by inpat_days desc 帮我把这段sql优化一下
最新发布