Essentially I'm attepting to select the top read (based on read_date), and check if it has a type in ( 'R','S','C','B','Q','F','I','A')

    select *
    from (
            select *
            from (
               select *
               FROM table
               WHERE  id = 369514
               order by read_date desc
                )
             where rownum = 1
             )
     where type IN ( 'R','S','C','B','Q','F','I','A')

I only need to return a row if the top row has a type in the set, if not return nothing.

The only way I seem to be able to is using all these nasty sub-queries.