DECLARE @sql LONG VARCHAR;
SET @sql = 'SELECT Test';
FOR f_fetch
AS c_fetch NO SCROLL CURSOR FOR
SELECT DISTINCT t1.TestDate AS @c2
FROM (SELECT ccd_lab_desc AS 'Test', ( ccd_result_1 || ' ' || ccd_lab_display_unit ) AS 'Result', ccd_lab_date_display AS 'TestDate' FROM DBA.v_ccd_lab WHERE ccd_lab_date > ( Today() - 90 ) AND ccd_patient_id = 17577 ORDER BY ccd_lab_desc ASC, ccd_lab_date DESC ) as t1
ORDER BY t1.TestDate desc
FOR READ ONLY
DO
SET @sql = STRING (@sql,', (if charindex(''-99'',replace((max( ( IF t1.TestDate = ''',@c2,''' THEN t1.Result ELSE -99 ENDIF ) ) || max(t1.ccd_lab_display_unit) ),''0000'',''0'')) = 0 then replace((max( ( IF t1.TestDate = ''',@c2,''' THEN t1.Result ELSE -99 ENDIF ) ) || max(t1.ccd_lab_display_unit) ),''00000'',''0'') else ''N/A'' endif) AS ''',@c2,'''' );
END FOR;
SET @sql = STRING (
@sql,
' INTO #t1 FROM (SELECT ccd_lab_desc AS Test, ccd_lab_display_unit, (case when IsNumeric(ccd_result_1) = 1 then ccd_result_1 ELSE 0 end) AS Result, ccd_lab_date_display AS TestDate FROM DBA.v_ccd_lab WHERE ccd_lab_date > ( Today() - 90 ) AND ccd_patient_id = 17577 ORDER BY ccd_lab_desc ASC, ccd_lab_date DESC ) as t1 GROUP BY t1.Test' );
EXECUTE IMMEDIATE @sql;
SELECT * FROM #t1 ORDER BY Test;
END;
Stikked
