0

パーセンテージ計算 (%_SOLD - FOUND のパーセンテージとしての SOLD - 以下の 3 行目) をクエリに追加しましたが、これはある程度機能していますが、SOLD が NULL として返される場合に 0.00 ではなく IFNULL 値を返します。

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 行目は FOUND と SOLD の両方が 0.00 であるため IFNULL 値を正しく返していますが、1 行目では IFNULL 値ではなく計算結果 (0.00) を返す必要があります。

クエリの最初の 2 行で使用されている IFNULL 0.00 をパーセンテージ計算に挿入しようとしましたが、うまくいきませんでした。

助けてください、ありがとう!

4

0 に答える 0