Try something like this:
Code:
WITH mrvl99 AS
(SELECT 1 ptid, SYSDATE d_vital,'Weight' vital_name, 101.1 vital_result FROM DUAL UNION
SELECT 1, SYSDATE,'Height', 5.2 FROM DUAL UNION
SELECT 2, SYSDATE,'Weight', 212.2 FROM DUAL UNION
SELECT 2, SYSDATE,'Height', 5.7 FROM DUAL UNION
SELECT 3, SYSDATE,'Weight', 183.3 FROM DUAL UNION
SELECT 3, SYSDATE,'Height', 4.11 FROM DUAL)
SELECT *
FROM (SELECT ptid, vital_name, vital_result
FROM mrvl99)
PIVOT (MAX( vital_result ) FOR vital_name IN ('Height', 'Weight'));
Bookmarks