我有2个表t1,其中存储了具有ENUM值的价格和项目类型,而表t2中存储了销售数量。我有一个查询来计算总销售额(价格*数量),但我需要计算2个结果数字之间的差。
两个数之差的计算公式应为:
(((N1-N2)/((N1 + N2)/ 2))* 100
使用上面的公式,我需要计算N1和N2之间的百分比差异。 这两个数字都是基于col_type中2个ENUM值的2个单独SUM案例的结果(请参见下文)
SELECT
CONCAT('£ ',SUM(CASE WHEN t1.col_type = 'N1' THEN t2.qty * t1.price ELSE 0 END)) AS 'Total N1',
CONCAT('£ ',SUM(CASE WHEN t1.col_type = 'N2' THEN t2.qty * t1.price ELSE 0 END)) AS 'Total N2'
FROM t2
INNER JOIN t1
ON t2.col_id = t1.col_id
结果输出应为:
+----------+----------+------------------------+
| Total N1 | Total N2 | Diff between N1 and N2 |
+----------+----------+------------------------+
| 3765.50 | 3246.15 | 14.81% |
+----------+----------+-----------------------
我的问题是如何将N1和N2的值(已生成)传递到第三列,并使用上述公式计算N1和N2之间的差?
注意:请注意,两个数字之间是 百分比差异 ,而不是 百分比变化 ,其中(N2 -N1)/ N1 * 100适用...
在此先感谢您的回复...
答案 0 :(得分:1)
您对“差异”有一个奇怪的定义。为此,请使用子查询:
char *