我在我的查询中添加了一个百分比计算(%_SOLD - SOLD 作为 FOUND 的百分比 - 下面的第 3 行),它在一定程度上有效,但是当 SOLD 返回为 NULL 时返回 IFNULL 值而不是 0.00。
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 值。
我尝试将查询的前 2 行中使用的 IFNULL 0.00 插入到百分比计算中,但它不起作用。
请帮忙,谢谢!