MySQL - вычисляется значение IFNULL вместо 0,00

Я добавил процентное вычисление (%_SOLD - SOLD как процент от FOUND - строка 3 ниже) к моему запросу, который работает до некоторой степени, но возвращает значение IFNULL вместо 0,00, когда SOLD возвращается как NULL.

IFNULL(ROUND((SUM(CASE WHEN ((rows.type = 3) OR (rows.name = 'Labour')) THEN rows.price END)),2),0.00) AS FOUND,
IFNULL(ROUND((SUM(CASE WHEN (((rows.type = 3) OR (rows.name = 'Labour')) AND rows.status = 'A') THEN rows.price END)),2),0.00) AS SOLD,
IFNULL(ROUND((((SUM(CASE WHEN (((rows.type = 3) OR (rows.name = 'Labour')) AND rows.status = 'A') THEN rows.price END))*100.0)/(SUM(CASE WHEN ((rows.type = 3) OR (rows.name = 'Tyre Labour')) THEN rows.price END))),2),'na') AS '%_SOLD'

Это вывод, который я получаю:

"FOUND"     "SOLD"      "%_SOLD"
"269.86"    "0.00"      "na"
"0.00"      "0.00"      "na"

Строка 2 правильно возвращает значение IFNULL, потому что FOUND и SOLD равны 0,00, но мне нужно, чтобы строка 1 возвращала вычисленный результат (0,00) вместо значения IFNULL.

Я попытался вставить IFNULL 0.00, использованный в первых двух строках запроса, в расчет процента, но он не сработал.

Пожалуйста, помогите, спасибо!

0 ответов

Другие вопросы по тегам