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