Du kan ikke bruge aliaser, der er defineret i SELECT-udtrykket, til at beregne andre kolonner, der også er i det samme SELECT-udtryk. Du har mindst tre muligheder:
-
Gentag underforespørgslen, hver gang du skal bruge den. Dette har den ulempe, at du bliver nødt til at gentage en masse kode. Da dine underforespørgsler er lange og komplekse, er dette en uønsket mulighed.
-
Brug en underforespørgsel og en ydre forespørgsel.
SELECT *, (subtotal - payment) AS balance FROM ( SELECT ..., (...) AS subtotal, (...) AS payment FROM ... ) T1
-
Brug en JOIN i stedet for undervalg. Dette er lidt mere komplekst for din situation, men det vil være bedre for ydeevnen, hvis du nogensinde har brug for at hente mere end én række.