【发布时间】:2021-10-20 03:24:24
【问题描述】:
我需要对一些数字进行除法,我的 DQL:
$q
->addSelect("({$subDQL->getDQL()})")
->addSelect("calculated_sum/e.total AS available")
第一个addSelect 正确返回calculated_sum,但第二个addSelect 抛出错误。
for:
->addSelect("calculated_sum/i.total AS available")
->addSelect($q->expr()->quot("billing_paid", "pd.total") ." AS available")
error is:
Expected Doctrine\\ORM\\Query\\Lexer::T_FROM, got '/'
for:
->addSelect("QUOT(billing_paid, pd.total) AS available")
error is:
Expected known function, got 'QUOT'
available 是当 1 完全可用且小于 1 部分可用且 0 不可用时从 0 变为 1 的值。
【问题讨论】:
-
您确定错误不在
->addSelect("calculated_sum/i.total AS available")中,因为它是您使用/的唯一地方。如果没问题,请尝试将->addSelect($q->expr()->quot("billing_paid", "pd.total") ."AS available")更改为->addSelect($q->expr()->quot("billing_paid", "pd.total") ." AS available"),也许那个空格会导致查询失败。 -
@alexcm tnx,但该错误已复制到此处,但我的错误是使用错误的逻辑,计算总和必须在主查询中定义,而不是在子查询中定义,其他不能使用变量从 1 addSelect 在其他,在 MySql 中抛出错误。
标签: symfony orm query-builder dql