I am trying to pull a fairly complex report, and on that report they want to view the date the patient last had a blood pressure, and what the blood pressure result was. Each portion of the blood pressure (Systolic and Diastolic) are stored separately. And for each one, there's a separate date field and a time field. I have yet to figure out how the time is stored but I do have a way to convert it if needed. I'm not even sure how I stumbled across this anymore. RIGHT('0'+CAST(MRVL99.T_VITAL/3600 AS VARCHAR),2)+':' + RIGHT('0'+CAST(((MRVL99.T_VITAL/60)%60) AS VARCHAR),2) AS VITAL_TIME
So my query works fairly well, except if a patient has more than one blood pressure recorded on the same date. I can NOT figure out how to make it return the last record only. This would work if the date and time were stored in one date/time field but I just can't get it to work the way it is. Any help would be greatly appreciated.SELECT DISTINCT MRPA99.ACCT_ID, rtrim(MRPA99.PAT_LAST_NAME) + ', '+ rtrim(MRPA99.PAT_FIRST_NAME) AS PT_NAME, rtrim(LAST_BPS.VITAL_RESULT) + '/' + rtrim(LAST_BPD.VITAL_RESULT) AS LAST_BP, CONVERT(VARCHAR(10),LAST_BPS.D_VITAL,101) AS LAST_BP_DATEFROM MRCI99 INNER JOIN MRPA99 ON MRCI99.PTID = MRPA99.PTID LEFT OUTER JOIN (SELECT DISTINCT MRPA99.PTID, MRVL99.VITAL_RESULT AS VITAL_RESULT, MRVL99.D_VITAL AS D_VITAL, MRVL99.T_VITAL AS T_VITAL FROM MRVL99 INNER JOIN MRPA99 ON MRVL99.PTID = MRPA99.PTID INNER JOIN (SELECT DISTINCT MRPA99.PTID AS PTID, MAX(MRVL99.D_VITAL) AS LAST_D_DIASTOLIC, MAX(MRVL99.T_VITAL) AS LAST_T_DIASTOLIC FROM MRPA99 INNER JOIN MRVL99 ON MRPA99.PTID = MRVL99.PTID WHERE MRVL99.VITAL_NAME = 'Diastolic' GROUP BY MRPA99.PTID) AS LAST_DIASTOLIC ON MRPA99.PTID = LAST_DIASTOLIC.PTID AND LAST_DIASTOLIC.LAST_D_DIASTOLIC = MRVL99.D_VITAL WHERE MRVL99.VITAL_NAME = 'Diastolic') AS LAST_BPD ON MRPA99.PTID = LAST_BPD.PTID LEFT OUTER JOIN (SELECT DISTINCT MRPA99.PTID, MRVL99.VITAL_RESULT AS VITAL_RESULT, MRVL99.D_VITAL AS D_VITAL, MRVL99.T_VITAL AS T_VITAL FROM MRVL99 INNER JOIN MRPA99 ON MRVL99.PTID = MRPA99.PTID INNER JOIN (SELECT DISTINCT MRPA99.PTID AS PTID, MRVL99.D_VITAL, MAX(MRVL99.D_VITAL) AS LAST_D_SYSTOLIC, MAX(MRVL99.T_VITAL) AS LAST_T_SYSTOLIC FROM MRPA99 INNER JOIN MRVL99 ON MRPA99.PTID = MRVL99.PTID WHERE MRVL99.VITAL_NAME = 'Systolic' GROUP BY MRPA99.PTID, MRVL99.D_VITAL) AS LAST_SYSTOLIC ON MRPA99.PTID = LAST_SYSTOLIC.PTID AND LAST_SYSTOLIC.LAST_D_SYSTOLIC = MRVL99.D_VITAL WHERE MRVL99.VITAL_NAME = 'Systolic') AS LAST_BPS ON MRPA99.PTID = LAST_BPS.PTIDWHERE MRCI99.CLIN_LIST_CODE1 >= '250.00' AND MRCI99.CLIN_LIST_CODE1 <= '250.9' AND MRPA99.PAT_STATUS <> 'D' AND MRPA99.PAT_LAST_NAME NOT LIKE '%ZTEST%' AND MRPA99.ACCT_ID = '14875' AND LAST_BPD.T_VITAL = LAST_BPS.T_VITALORDER BY PT_NAME