Sie könnten die Abfrage auf die Zahl des Monats minus 1 mit sich selbst verknüpfen. Dann hätten Sie die Summe des Monats und des letzten Monats in einer Zeile und könnten den Prozentsatz berechnen. Ähnlich dem Folgenden:
SELECT monthname(concat('1970-', lpad(A.MONTH, 2, '0'), '-01')) AS MONTH,
A.SALE_PRICE,
CASE
WHEN A.SALE_PRICE IS NULL
THEN NULL
WHEN B.SALE_PRICE IS NULL
THEN NULL
WHEN A.SALE_PRICE = 0
THEN NULL
ELSE
(B.SALE_PRICE / A.SALE_PRICE - 1) * 100
END AS PERCENTAGE
FROM (SELECT month(DATE_PURCHASED) AS MONTH,
sum(SALE_PRICE) AS SALE_PRICE,
FROM SALE
WHERE year(DATE_PURCHASED) = 2017
GROUP BY MONTH) A
LEFT JOIN (SELECT month(DATE_PURCHASED) AS MONTH,
sum(SALE_PRICE) AS SALE_PRICE,
FROM SALE
WHERE year(DATE_PURCHASED) = 2017
GROUP BY MONTH) B
ON A.MONTH - 1 = B.MONTH
ORDER BY A.MONTH;
Beachten Sie A
und B
Da es sich um Ihre Abfrage handelt, wurde sie nur so geändert, dass der Monat numerisch ist, da dies im ON
erforderlich ist Klausel.