我正在PatientData.DateVal
尝试获取PatientData.DecVal
. 例如,我想要每个患者每次治疗前特定类型的患者数据的最新日期和值。PatientTreatment.Startdate
PatientTreatment
我使用了下面的脚本。它工作正常。但是这个脚本对我没有好处,因为它给了我一个只列出一次病人的列表。我想获得每种治疗的最新值。
SELECT
PatientTreatment.PatientId
,PatientTreatment.StartDate
,PatientData.FK_PatientId
,PatientData.DateVal
,PatientData.DecVal
FROM
PatientTreatment
,PatientData
WHERE
PatientTreatment.PatientId = PatientData.FK_PatientId
AND PatientData.FK_ParamSettingId = 68
AND PatientData.DateVal =
(
SELECT
MAX(DateVal)
FROM
PatientData
WHERE
PatientData.FK_PatientId = PatientTreatment.PatientId
AND DateVal < PatientTreatment.StartDate
)
我的表PatientData
有以下列(简化):
---------------------------------------------------------------
| Id | FK_PatientID | FK_ParamsettingId | DateVal | DecVal |
---------------------------------------------------------------
| 1 | 247 | 69 | 2010-09-11 | 1 |
| 2 | 514 | 68 | 2011-11-21 | 0 |
| 3 | 20291 | 69 | 2012-11-21 | 2.4 |
| 4 | 20291 | 69 | 2013-12-21 | 3 |
| 5 | 20291 | 69 | 2011-03-03 | 0 |
| 6 | 20221 | 68 | 2012-03-04 | 3 |
| 7 | 20291 | 68 | 2011-06-06 | 2 |
| 10 | 234 | 69 | 2011-03-07 | 4 |
| 11 | 444 | 69 | 2012-04-05 | 1.1 |
| 12 | 212 | 69 | 2012-12-04 | 4.2 |
| 13 | 21342 | 69 | 2011-11-03 | 5.5 |
| 14 | 223 | 69 | 2013-11-01 | 3.3 |
---------------------------------------------------------------
我的表PatientTreatment
有以下列(简化):
--------------------------
| PatientID | StartDate |
--------------------------
| 247 | 2010-09-11 |
| 514 | 2011-11-21 |
| 20291 | 2012-11-21 |
| 201 | 2013-12-21 |
| 2291 | 2011-03-03 |
| 221 | 2012-03-04 |
| 20291 | 2011-06-06 |
| 234 | 2011-03-07 |
| 80998 | 2012-04-05 |
| 212 | 2012-12-04 |
| 21342 | 2011-11-03 |
| 223 | 2013-11-01 |
--------------------------
我希望你们能帮助我。
亲切的问候 Doggabyte
编辑:我想要一个包含以下列的输出:PatientId、Startdate、LastDateValBeforeStartdate、LastDecValBeforeStartdate