我的表格有2個數據集,一個數據集有醫生辦公室數據,另一個數據集有醫院數據。所以我想知道的是,如果病人在醫院最初入院90天后跟蹤他的醫生。患者可以有多個入院日期,如果他們在90天后跟隨他們的醫生,我們會分別查看每個入院情況。計算應該是如果患者在90天后使用數據添加功能在醫生後面跟進醫生
if service_date - discharge_Date > 90 then flag as 1
SET NOCOUNT ON
GO
DECLARE @TEST TABLE
(
[NAME] VARCHAR(15)
,[SERVICE_DT] DATETIME
,[DSCH_DT] DATETIME
,[SRC] VARCHAR(50)
,[LOC] VARCHAR(50)
)
INSERT INTO @TEST ([NAME], [SERVICE_DT], [DSCH_DT], [SRC], [LOC])
VALUES ('MIKE', '2014-01-01', '2014-01-01', 'Hospital', 'NY')
,('MIKE', '2014-2-27', '2014-02-28', 'Hospital', 'NY')
,('MIKE', '2014-07-15', '2014-07-15', 'Hospital', 'NY')
,('DAVID', '2014-09-04', '2014-09-04', 'Hospital', 'NY')
,('DAVID', '2014-04-01', '2014-04-02', 'Hospital', 'NY')
,('TOM', '2014-05-01', '2014-08-15', 'Hospital', 'TX')
,('MIKE', '2014-03-02', '9999-01-01', 'Doctor_Offfice', 'NY')
,('MIKE', '2014-05-22', '9999-01-01', 'Doctor_Offfice', 'NY')
,('DAVID', '2014-01-01', '9999-01-01', 'Doctor_Offfice', 'NY')
,('DAVID', '2014-05-03', '9999-01-01', 'Doctor_Offfice', 'NY')
,('TOM', '2014-08-20', '9999-01-01', 'Doctor_Offfice', 'TX')
,('DAVID', '2014-12-02', '9999-01-01', 'Doctor_Offfice', 'NY')
;WITH MYTEST ([NAME], [SERVICE_DT], [DSCH_DT], [SRC], [LOC]) AS
(
SELECT NAME
,[SERVICE_DT]
,[DSCH_DT]
,[SRC]
,LOC
FROM @TEST
)
,HOSP AS
(
SELECT NAME
--,[SERVICE_DT]
,[DSCH_DT]
,[LOC] FROM MYTEST
WHERE SRC = 'Hospital'
)
,DOC AS
(
SELECT NAME
,[SERVICE_DT]
--,[DSCH_DT]
,[SRC] FROM MYTEST
WHERE SRC = 'Doctor_Offfice'
)
SELECT HOSP.NAME, HOSP.DSCH_DT, DOC.SERVICE_DT, HOSP.LOC AS HOSP_SRC, DOC.SRC AS DOC_SRC, CASE
WHEN HOSP.DSCH_DT < DateAdd(d, 90, DOC.SERVICE_DT) THEN 1 ELSE 0 END AS FU90 FROM HOSP INNER
JOIN DOC ON HOSP.NAME = DOC.NAME
SET NOCOUNT OFF
GO
我在你嘗試無厘頭什麼的醫院和部分工作。您正在尋找90天內的後續訪問。鑑於醫院就診時間可能超過一天,您不應該在出院後90天內尋找隨訪嗎? – 2014-12-05 20:17:25
是的,它應該從排出日期開始。 – moe 2014-12-05 20:19:10
我給你一個提示。 datediff函數比dateadd更適合您正在嘗試的內容。 – 2014-12-05 20:36:25