PHP, MySQL Как суммировать данные в двух разных диапазонах дат
У меня возникли проблемы с этим
+------------+------------+------------+
| Name | year | Value |
+------------+------------+------------+
| Name1 | 2015 | 100 |
| Name1 | 2014 | 150 |
| Name1 | 2013 | 200 |
| Name2 | 2015 | 130 |
| Name2 | 2014 | 160 |
| Name2 | 2013 | 220 |
+------------+------------+------------+
Значение с (2015 по 2013 год) минус значение с (2014 по 2013 год) Сгруппированы по названию
, который выведет
+------------+------------+
| Name | Value |
+------------+------------+
| Name1 | 100 |
| Name2 | 130 |
+------------+------------+
Или в любом случае я могу использовать SUM с чем-то вроде
(SUM(Name1 WHERE year <= "2014") - SUM(Name1 WHERE year <= "2015") ) AS Value
GROUP BY Name
4
Author: Abdulla Nilam, 2015-06-16
2 answers
Вам нужно что-то вроде этого
SELECT (SUM(IF(year <= 2015 AND year >= 2013,value,0) )
- SUM(IF(year <= 2014 and year >= 2013,value,0) )) AS total_sum
FROM your_table_name
GROUP BY Name
Это сделает свое дело
2
Author: Meenesh Jain, 2015-06-16 05:38:48
Вы можете использовать вот так
SELECT (SUM(IF(`year` <= 2015 and `year` >= 2013,value,0) ) ) as total_sum_2015 FROM `table`
Сделайте то же самое для 2014 года вот так
SELECT (
SUM( IF( `year` <=2014
AND `year` >=2013, value, 0 ) )
) AS total_sum_2014
FROM `table`
0
Author: Khadka Pushpendra, 2015-06-16 05:41:17