Jeremy,
> Am I just approaching this all wrong and need to create a temporary table
> and draw from that, or is there a way to salvage this query?
Think about using a subquery instead of the DISTINCT ON approach.   I don't 
think you can get what you want with DISTINCT ON.
A temporary table is not necessary.
-- 
-Josh Berkus
 Aglio Database Solutions
 San Francisco