I am trying to get the latest PatientData.DateVal
and PatientData.DecVal
before PatientTreatment.Startdate
for each row in PatientTreatment
. E.g I want the latest date and value for a specific type of patientdata before each treatment for every patient.
I have used the script below. It works OK. But this script is no good for me because it gives me a list which only lists a patient once. I want to get the latest value for each treatment.
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
)
My table PatientData
has the following columns (simplified):
---------------------------------------------------------------
| 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 |
---------------------------------------------------------------
And my table PatientTreatment
has the following columns (simplified):
--------------------------
| 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 |
--------------------------
I hope you guys can help me out.
Kind regards
Doggabyte
EDIT: I want a output which contains the following columns: PatientId, Startdate, LastDateValBeforeStartdate, LastDecValBeforeStartdate