Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Faça matemática no MySQL a partir de SELECT


Você não pode usar aliases definidos na cláusula SELECT para calcular outras colunas que também estão na mesma cláusula SELECT. Você tem pelo menos três opções:

  1. Repita a subconsulta sempre que precisar usá-la. Isso tem a desvantagem de que você precisará repetir muito código. Como suas subconsultas são longas e complexas, essa é uma opção indesejável.

  2. Use uma subconsulta e uma consulta externa.
    SELECT
        *,
        (subtotal - payment) AS balance
    FROM
    (
         SELECT 
             ...,
             (...) AS subtotal,
             (...) AS payment
         FROM ... 
    ) T1
    

  3. Use um JOIN em vez de subseleções. Isso é um pouco mais complexo para sua situação, mas será melhor para o desempenho se você precisar buscar mais de uma linha.