1
這似乎是一個基本問題,但我無法弄清楚(Oracle SQL)。SQL只在某些條件符合的情況下才選擇行
我需要拉其包含多個表中的某些訪問間隔患者就診的日期,但是,這些表中的一個包含多個訪問:
基線表:門診號,訪問日期 (這是基準訪問)
程序表:門診號,訪問日期(這是程序的訪問)
跟進表:門診號,訪問間隔,訪問日期(其中訪問間隔包含的值,如 '1_month訪問', '2_month參觀', '3_month參觀' 等)
我想把每個病人的訪問日期表作爲一行,並將每個訪問間隔作爲列標題。我試圖用CASE語句來做到這一點,但我爲單個病人返回多行。
這是我到目前爲止有:
SELECT DISTINCT
BASE.PT AS "Patient Number",
BASE.VIST_DATE AS "Baseline",
PROC.VISIT_DATE AS "Procedure",
CASE
WHEN FOLLOWUP.VISIT_INTERVAL = '1_Month'
THEN FOLLOWUP.VISIT_DATE
ELSE NULL END AS "1 Month",
CASE
WHEN FOLLOWUP.VISIT_INTERVAL = '2_Month'
THEN FOLLOWUP.VISIT_DATE
ELSE NULL END AS "2 Month"
FROM BASE
LEFT JOIN PROC
ON BASE.PT=PROC.PT
LEFT JOIN FOLLOWUP
ON BASE.PT=FOLLOWUP.PT
這將返回每個病人2排,與包含基線,步驟1行,1個月的訪問日期(2月份列空),另一排包含基線,程序和2個月訪問日期(1個月的列爲空)。我想爲每個患者顯示一行,並填寫所有日期。我顯然錯過了一些東西(或者一般來說很差),所以我已經發布了求助。
謝謝!
很容易的,謝謝!我必須在每個後續間隔情況下也添加MAX。 – user3182246