mysql 3个表sql总和除以两个字段之间的减号不起作用

fjnneemd  于 2023-01-20  发布在  Mysql
关注(0)|答案(1)|浏览(90)

我有三张table:formulario,viaverde和reparacoes。其中一个字段在所有表中是相等的,称为matricula,我试图将每个算术运算分组到它。但我一直得到matricula的错误是不明确的或synthax错误,我如何才能实现这一点?
下面的代码:

JOIN (
    SELECT matricula, (total)/(kmsTotais) AS custoKM
    FROM (
        SELECT matricula, SUM(kmfim - quilometragem) AS kmsTotais
        FROM formulario
        GROUP BY matricula
    ) e
    JOIN (
        SELECT matricula, abastecimento_euros as total FROM formulario
        UNION ALL
        SELECT matricula, custo as total FROM viaverde
        UNION ALL
        SELECT matricula, valor as total FROM reparacoes
    ) as subquery
    GROUP BY matricula
) i ON i.matricula = f.matricula
kqlmhetl

kqlmhetl1#

您需要用表别名限定matricula以使其明确。

JOIN (
    SELECT e.matricula, SUM(total)/(kmsTotais) AS custoKM
    FROM (
        SELECT matricula, SUM(kmfim - quilometragem) AS kmsTotais
        FROM formulario
        GROUP BY matricula
    ) e
    JOIN (
        SELECT matricula, abastecimento_euros as total FROM formulario
        UNION ALL
        SELECT matricula, custo as total FROM viaverde
        UNION ALL
        SELECT matricula, valor as total FROM reparacoes
    ) as subquery ON e.matricula = subquery.matricula
    GROUP BY e.matricula
) i ON i.matricula = f.matricula

您也可以将ON e.matricula = subquery.matricula替换为USING (matricula),因为这表示两个表中的列名相同,所以不需要限定该列。

相关问题