U kunt geen aliassen gebruiken die zijn gedefinieerd in de SELECT-component om andere kolommen te berekenen die zich ook in dezelfde SELECT-component bevinden. Je hebt ten minste drie opties:
-
Herhaal de subquery elke keer dat u deze moet gebruiken. Dit heeft als nadeel dat je veel code moet herhalen. Aangezien uw subquery's lang en complex zijn, is dit een ongewenste optie.
-
Gebruik een subquery en een outer query.
SELECT *, (subtotal - payment) AS balance FROM ( SELECT ..., (...) AS subtotal, (...) AS payment FROM ... ) T1
-
Gebruik een JOIN in plaats van subselects. Dit is iets ingewikkelder voor uw situatie, maar het is beter voor de prestaties als u ooit meer dan één rij moet ophalen.