Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 根据其他两个与日期相关的列的值获取值之和_Mysql - Fatal编程技术网

Mysql 根据其他两个与日期相关的列的值获取值之和

Mysql 根据其他两个与日期相关的列的值获取值之和,mysql,Mysql,考虑到下面屏幕截图中的示例数据,mysql是否可以仅在值在本月之前的情况下,从每月\u金额返回值的总和。我使用了连接来提取这些数据。左边的5列来自一个表,其余的来自另一个表 我遇到的问题是,假设是2015年4月,我不能只做一个sumWHERE goal\u yeartry WHERE Goal\u Year*100+month\u id\u FK从表中选择sum(monthly\u amount),其中goaldateNever,never将您的模式和表的转储粘贴为图片。是的,速度更快,但这是对

考虑到下面屏幕截图中的示例数据,mysql是否可以仅在值在本月之前的情况下,从
每月\u金额
返回值的总和。我使用了连接来提取这些数据。左边的5列来自一个表,其余的来自另一个表

我遇到的问题是,假设是2015年4月,我不能只做一个sum
WHERE goal\u yeartry


WHERE Goal\u Year*100+month\u id\u FK
从表中选择sum(monthly\u amount),其中goaldateNever,never将您的模式和表的转储粘贴为图片。是的,速度更快,但这是对那些阅读你的问题的人的不尊重我不知道。合适的替代方案是什么?我试图粘贴实际数据,但格式无法控制。您的第一个解决方案有效!我没有试第二个。非常感谢。事实上,我说得太快了。只要您的月份是2位数格式,它就可以工作。否则,将201504与20154进行比较。年*100+月应适用于一位数和两位数月。2015*100+4 = 201504. 2015*100+11 = 201511. 只要确保年和月都是整数就可以了。否则执行:(目标年+0)*100+(月份id月+0)。我发布的第二个解决方案可能会稍微快一点,因为它允许mySQL使用年或月的索引。
WHERE Goal_Year*100+month_id_FK <= 201504
WHERE
    GOAL_YEAR < 2015 OR
    (GOAL_YEAR = 2015 and month_id_FK <= 4)
select sum(monthly_amount) from table where goaldate<(SELECT CURDATE())