我有一个脚本可以计算相对于前几个月总数的增减百分比。例如。 Jan 的百分比将为 0,那么无论 Feb 的总数是多少,都会根据 Jan 的百分比等计算出百分比。
我已经在 sqlfiddle ( http://sqlfiddle.com/#!9/8c2eac/2/0 ) 中创建了表
结果每个月都显示为一月,我想以正确的顺序查看一月、二月、三月等,以便百分比计算也能正确计算。有任何想法吗?
http://sqlfiddle.com/#!9/8c2eac/2/0
SELECT monthname(concat('1970-', lpad('1', A.MONTH, '0'), '-01')) AS MONTH,
A.SALES_AMOUNT,
CASE
WHEN A.SALES_AMOUNT IS NULL
THEN NULL
WHEN B.SALES_AMOUNT IS NULL
THEN NULL
WHEN A.SALES_AMOUNT = 0
THEN NULL
ELSE
ROUND((B.SALES_AMOUNT / A.SALES_AMOUNT - 1) * 100,2)
END AS PERCENTAGE
FROM (SELECT month(TRANSACTION_DATE) AS MONTH,
ROUND(sum(SALES_AMOUNT),2) AS SALES_AMOUNT
FROM SALES
WHERE year(TRANSACTION_DATE) = 2018
GROUP BY MONTH) A
LEFT JOIN (SELECT month(TRANSACTION_DATE) AS MONTH,
ROUND(sum(SALES_AMOUNT),2) AS SALES_AMOUNT
FROM SALES
WHERE year(TRANSACTION_DATE) = 2018
GROUP BY MONTH) B
ON A.MONTH - 1 = B.MONTH
ORDER BY A.MONTH;
结果:
January 45163.22
January 34531.15 30.79
January 44194.98 -21.87
January 30826.68 43.37
January 39016.04 -20.99
January 37284.25 4.64
January 37640.08 -0.95
January 39703.85 -5.20
January 34958.94 13.57
January 34447.61 1.48
January 39161.90 -12.04
January 36986.16 5.88
最佳答案
看起来很像我给出的答案here .我在那里犯了一个错误,我以为我已经编辑掉了——它是快速测试的遗留物。事实证明,我没有,为此感到抱歉。
将 monthname(concat('1970-', lpad('1', A.MONTH, '0'), '-01'))
替换为 monthname(concat(' 1970-', lpad(A.MONTH, 2, '0'), '-01'))
.
(如果您使用它们,也许可以考虑接受我的答案。)
编辑:
交换A
和B
的角色:
SELECT monthname(concat('1970-', lpad(A.MONTH, 2, '0'), '-01')) AS MONTH,
A.SALES_AMOUNT,
CASE
WHEN A.SALES_AMOUNT IS NULL
THEN NULL
WHEN B.SALES_AMOUNT IS NULL
THEN NULL
WHEN B.SALES_AMOUNT = 0
THEN NULL
ELSE
ROUND((A.SALES_AMOUNT / B.SALES_AMOUNT - 1) * 100,2)
END AS PERCENTAGE
FROM (SELECT month(TRANSACTION_DATE) AS MONTH,
ROUND(sum(SALES_AMOUNT),2) AS SALES_AMOUNT
FROM SALES
WHERE year(TRANSACTION_DATE) = 2018
GROUP BY MONTH) A
LEFT JOIN (SELECT month(TRANSACTION_DATE) AS MONTH,
ROUND(sum(SALES_AMOUNT),2) AS SALES_AMOUNT
FROM SALES
WHERE year(TRANSACTION_DATE) = 2018
GROUP BY MONTH) B
ON A.MONTH - 1 = B.MONTH
ORDER BY A.MONTH;
关于mysql - 通过月份计算显示一月的所有内容?!? (MySql 工作台 6.3 CE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49981029/