Dans votre clause FROM, vous ne pouvez joindre que des ensembles de résultats, vous ne pouvez pas utiliser d'autres opérateurs de ce type.
Vous pouvez cependant utiliser des opérateurs arithmétiques dans votre clause SELECT, par ex. (Comme Alex a déjà dit):
SELECT (SELECT thefirst ...)
/
(SELECT thesecond ...) AS result
FROM DUAL;
ou bien:
SELECT A.thefirst/B.thesecond AS result
FROM (SELECT thefirst ...) A
,(SELECT thesecond ...) B;
La première approche échouera si les jeux de résultats ne sont pas exactement une ligne chacun.
La deuxième approche fonctionnera même si les ensembles de résultats ont plus d'une ligne - vous devrez peut-être fournir des critères de jointure entre A et B si vous ne voulez pas une jointure cartésienne entre les deux ensembles de résultats.
Je ne connais pas PL/SQL, mais essayez de convertir les deux opérandes en flottants avant de faire la division. Il peut faire une division entière, ce qui vous donnera 0 comme résultat (c'est ce que vous voyez?) –