A resposta curta seria:armazene na sessão não os dados, mas apenas a escolha do usuário.
Em uma página final, faça todos os seus cálculos.
Resposta adequada:a tabela temporária deve ser a ação da última esperança. Deve ser usado somente se nenhum mecanismo RDBMS regular puder ser usado.
Muito provavelmente sua lógica pode ser mapeada para junções padrão. Mas é impossível dizer mais, pois a lógica ainda é desconhecida.