हो सकता है कि आपने माइनस 1 महीने की संख्या पर क्वेरी में शामिल होना छोड़ दिया हो। तब आपके पास एक पंक्ति में पिछले महीने के महीने का योग था और आप प्रतिशत की गणना कर सकते थे। निम्न के समान:
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;
नोट A
और B
आपकी क्वेरी होने के नाते, बस संशोधित किया गया है ताकि महीना संख्यात्मक हो क्योंकि इसकी आवश्यकता ON
. में है खंड।