Do you need to create a temporary table at all?

Why don't you just fire off a stored procedure to return a record set?