0
어떻게 든 이전에 (BLAB) 데이터를 가져 오는 중 ... (ALAB) ...
에 대한 데이터가 없습니다. 따라서 환자는 일반적으로 프로 시저 전에 프로 시저를 얻었고 프로 시저 후에는 당신이 당신의 행이 표시되는 순서를 참조하는 경우 내 코드가오라클 SQL의 파티션 위에 오름차순
WITH BLAB AS
(
SELECT /*+PARALLEL*/
PAT.PATID_CD,
PAT.NOTED_DT,
LAB.COLLECTION_DT,
LAB.RESULT_DE,
LAB.UNI_LAB_CD,
LAB.PROCEDURE_DE,
RANK() OVER (PARTITION BY LAB.PATID_CD, PAT.NOTED_DT ORDER BY LAB.COLLECTION_DT DESC) AS RNK
FROM KPHC_PROBLEM_LIST_CN PAT
LEFT OUTER JOIN LAB
ON
PAT.PATID_CD = LAB.PATID_CD
AND LAB.REGION_CD = PAT.REGION_CD
AND LAB.REGION_CD ='CN'
AND LAB.COLLECTION_DT BETWEEN TO_DATE ('01-JAN-12') AND TO_DATE ('01-JAN-16')
AND (PROCEDURE_DE LIKE '%EGFR%'
OR PROCEDURE_DE LIKE '%INR%'
OR PROCEDURE_DE LIKE '%HEMOG%'
OR PROCEDURE_DE LIKE '%HEMATR%'
OR PROCEDURE_DE LIKE '%PLATE%'
OR PROCEDURE_DE LIKE '%CRCL%'
OR PROCEDURE_DE LIKE '%CREATI%'
OR PROCEDURE_DE LIKE '%PTT%'
OR PROCEDURE_DE LIKE '%ANTI-XA%')
AND LAB.COLLECTION_DT < PAT.NOTED_DT
)
, ALAB AS
(
SELECT /*+PARALLEL*/
PAT.PATID_CD,
PAT.NOTED_DT,
LAB.COLLECTION_DT,
LAB.RESULT_DE,
LAB.UNI_LAB_CD,
LAB.PROCEDURE_DE,
RANK() OVER (PARTITION BY LAB.PATID_CD, PAT.NOTED_DT ORDER BY LAB.COLLECTION_DT ASC) AS RNK
FROM KPHC_PROBLEM_LIST_CN PAT
LEFT OUTER JOIN LAB
ON
PAT.PATID_CD = LAB.PATID_CD
AND LAB.REGION_CD = PAT.REGION_CD
AND LAB.REGION_CD ='CN'
AND LAB.COLLECTION_DT BETWEEN TO_DATE ('01-JAN-12') AND TO_DATE ('01-JAN-16')
AND LAB.UNI_LAB_CD = 'HGB_'
AND (PROCEDURE_DE LIKE '%EGFR%'
OR PROCEDURE_DE LIKE '%INR%'
OR PROCEDURE_DE LIKE '%HEMOG%'
OR PROCEDURE_DE LIKE '%HEMATR%'
OR PROCEDURE_DE LIKE '%PLATE%'
OR PROCEDURE_DE LIKE '%CRCL%'
OR PROCEDURE_DE LIKE '%CREATI%'
OR PROCEDURE_DE LIKE '%PTT%'
OR PROCEDURE_DE LIKE '%ANTI-XA%')
AND LAB.COLLECTION_DT > PAT.NOTED_DT
)
SELECT /*+PARALLEL*/
BLAB.PATID_CD,
BLAB.NOTED_DT AS PROCEDURE_DATE,
BLAB.PROCEDURE_DE AS LAB_TYPE,
BLAB.COLLECTION_DT AS DATE_TAKEN_AFTER,
BLAB.RESULT_DE AS LAB_BEFORE,
ALAB.COLLECTION_DT AS DATE_TAKE_AFTER,
ALAB.RESULT_DE AS LAB_AFTER
FROM
ALAB,
BLAB
WHERE
ALAB.PATID_CD = BLAB.PATID_CD
AND ALAB.NOTED_DT = BLAB.NOTED_DT
AND ALAB.RNK = 1
AND BLAB.RNK = 1;
제공 샘플 데이터 및 예상 출력. 결과 세트에 누락 된 데이터는 무엇인지 명확하지 않습니다. – Serg
안녕 Serg ... 감사 결과를 게시했습니다 .... – LEARNDATAsCI
바로 ALAB의 LEFT JOIN은 LAB에서 일치하는 데이터를 찾지 못합니다. 그럼에도 불구하고'RANK() OVER (PARTITION BY NULL ORDER BY NULL)'은 1을 리턴한다. – Serg