Existem algumas maneiras, dependendo de qual versão você possui - consulte a documentação da oracle sobre técnicas de agregação de strings. Uma muito comum é usar
LISTAGG :SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description
FROM B GROUP BY pid;
Em seguida, junte-se a
A para escolher os pids você quer. Observação: Pronto para uso,
LISTAGG só funciona corretamente com VARCHAR2 colunas.