• I made an assumption you are using at least SQL Server 2000.

    DECLARE @Temperature TABLE (CalendarDate datetime, Temperature decimal(10,2),UOM char(1))

    INSERT INTO @Temperature

    SELECT GETDATE(), 55, 'F'

    UNION ALL

    SELECT GETDATE(), 15, 'C'

    UNION ALL

    SELECT GETDATE() + 1, 58, 'F'

    UNION ALL

    SELECT GETDATE() + 2, 60, 'F'

    UNION ALL

    SELECT GETDATE() + 3, 14, 'C'

    SELECT

    CalendarDate,

    MAX(CAST(CASE WHEN UOM = 'F'

    THEN Temperature

    WHEN UOM = 'C' THEN (Temperature * 1.8000) + 32.00

    END AS DECIMAL(10,2))) AS Fahrenheit

    FROM

    @Temperature

    GROUP BY

    CalendarDate

    SELECT

    CalendarDate,

    CAST(CASE WHEN UOM = 'F'

    THEN Temperature

    WHEN UOM = 'C' THEN (Temperature * 1.8000) + 32.00

    END AS DECIMAL(10,2)) AS Fahrenheit

    FROM

    @Temperature

    -- I think this will give you what you are looking for:

    SELECT

    t.CalendarDate,

    CAST(CASE WHEN t.UOM = 'F'

    THEN t.Temperature

    WHEN t.UOM = 'C' THEN (t.Temperature * 1.8000) + 32.00

    END AS DECIMAL(10,2)) AS Fahrenheit

    FROM

    @Temperature t

    inner join (select t1.CalendarDate, max(t1.UOM) UOM from @Temperature t1 group by t1.CalendarDate)dt

    on (t.CalendarDate = dt.CalendarDate and t.UOM = dt.UOM)

    ORDER BY

    t.CalendarDate;