sql >> Base de Datos >  >> RDS >> Mysql

Haz matemáticas en MySQL desde SELECT

No puede usar alias que están definidos en la cláusula SELECT para calcular otras columnas que también están en la misma cláusula SELECT. Tienes al menos tres opciones:

  1. Repita la subconsulta cada vez que necesite usarla. Esto tiene la desventaja de que necesitará repetir mucho código. Dado que sus subconsultas son largas y complejas, esta es una opción indeseable.

  2. Use una subconsulta y una consulta externa.

    SELECT
        *,
        (subtotal - payment) AS balance
    FROM
    (
         SELECT 
             ...,
             (...) AS subtotal,
             (...) AS payment
         FROM ... 
    ) T1
    
  3. Use un JOIN en lugar de subselecciones. Esto es un poco más complejo para su situación, pero será mejor para el rendimiento si alguna vez necesita obtener más de una fila.