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与WHERE之类的东西

(SUM(Name1 WHERE year <= "2014") - SUM(Name1 WHERE year <= "2015") ) AS Value
GROUP BY Name

最佳答案 你需要像这样的东西

 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

这样就可以了

点赞