なぜこのクエリは$row['percentualeScarico'] = null
(他の計算フィールドtotaleLiquidato
、totaleIncarichiRicevuti
、totaleIncarichiEvasi
、okです)を返しますか?mysqlユーザ定義変数を持つPDOがnullを返す
SELECT
SUM(importoLiquidato) as totaleLiquidato,
@totaleIncarichiRicevuti := COUNT(*) as totaleIncarichiRicevuti,
@totaleIncarichiEvasi := SUM(if(dataRestituzione IS NOT null,1,0)) as totaleIncarichiEvasi,
TRUNCATE((@totaleIncarichiEvasi/@totaleIncarichiRicevuti)*100,2) as percentualeScarico
FROM incarico
LEFT JOIN compagnia ON incarico.idCompagnia = compagnia.id
LEFT JOIN evento ON incarico.idTipoEvento = evento.id
WHERE (dataIncarico BETWEEN :daDataIncarico AND :aDataIncarico)
$stmt = $this->conn->prepare($query)
[here I do the bindings]
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
私がphpstorm SQLコンソールで同じクエリを実行しようとすると、すべてが問題ありません。
は
アレックスセッション変数は、MySQLがどのように扱われる
なぜあなたは@totaleIncarichiEvasiと@ totaleIncarichiRicevutiを選択して、どうしたのか分かりませんか?なぜこれらの変数が設定されているコードを投稿しないのですか? –
@totaleIncarichiRicevutiがゼロでないかどうかチェックしましたか?ゼロの場合、div-by-zeroが得られ、結果はnullになります。 –
@YourCommonSense '@ totaleIncarichiEvasi'と' @ totaleIncarichiRicevuti'が正しくフェッチされました – alzambo