PHP、MySQL如何对两个不同日期范围的数据求和

PHP、MySQL如何对两个不同日期范围的数据求和,php,mysql,sum,Php,Mysql,Sum,我做这件事有困难 +------------+------------+------------+ | Name | year | Value | +------------+------------+------------+ | Name1 | 2015 | 100 | | Name1 | 2014 | 150 | | Name1 | 2013 | 2

我做这件事有困难

+------------+------------+------------+
|   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

(SUM(Name1,其中年份您需要这样的东西

 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
选择(总和(如果(年份=2013,值为0))
-总和(如果(年份=2013年,值为0))作为总金额
从您的\u表\u名称
按名称分组

这将实现您可以像这样使用的技巧

 SELECT (SUM(IF(`year` <= 2015 and `year` >= 2013,value,0) ) ) as total_sum_2015 FROM `table` 
从“表”中选择(总和(如果(`year`=2013,值为0))作为2015年的总和
2014年也是如此 像这样

SELECT (
    SUM( IF( `year` <=2014
    AND `year` >=2013, value, 0 ) )
    ) AS total_sum_2014
    FROM `table`
选择(
总和(如果(`year`=2013,值为0))
)2014年总计
从`表`

您的预期输出是什么?“从(2015年到2013年)的值减去(2014年到2013年)的值”这意味着您只希望2015年的值之和正确?所以您将直接从表中检索,那么为什么要使用复杂查询?在使用实际数据(包括贷方和借方)手动计算后你的解决方案行得通我没注意到LOL…,Thnx这么多活力