У меня есть 2 таблицы t1, где хранятся цена и тип позиции со значением ENUM, и t2, где хранится проданное количество. У меня есть запрос для расчета общей продажи (цена * кол-во), но мне нужно рассчитать разницу между 2 приведенными числами.
Формула расчета для разности между двумя числами должна быть:
((N1 - N2) / ((N1 + N2) / 2)) * 100
Используя приведенную выше формулу, мне нужно рассчитать разницу в процентах между N1 и N2.
Оба числа являются результатом 2 отдельных случаев SUM на основе 2 значений ENUM в col_type (см. Ниже)
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 (уже сгенерированные) в 3-й столбец и рассчитать разницу между N1 и N2 по приведенной выше формуле?
Примечание: обратите внимание, что процентная разница между 2 числами, а не процентное изменение где (N2-N1) / N1 * 100 применяется ...
Заранее спасибо за любой ответ ...