表 1:
ID | FOO_ID | BAR| START_DATE | END_DATE
1 | 343 | 3 | 11-02-2014 | 2-03-2016
表 2:
ID | FOO_ID | BAR | MONTH | CALCULATION A
1 | 343 | 3 | 1 | .98772
2 | 343 | 3 | 2 | .92422
3 | 343 | 3 | 3 | .89223
4 | 343 | 3 | 4 | .79002
5 | 343 | 3 | 5 | 1.00182
6 | 343 | 3 | 6 | .97235
7 | 343 | 3 | 7 | .98674
8 | 343 | 3 | 8 | .99986
9 | 343 | 3 | 9 | .78942
10 | 343 | 3 | 10 | .67932
11 | 343 | 3 | 11 | .95282
12 | 343 | 3 | 12 | .94828
期望的结果:
FOO ID | BAR | MONTH | CALCULATION A
343 | 3 | 11 | .95282
343 | 3 | 12 | .94828
343 | 3 | 1 | .98772
343 | 3 | 2 | .92422
343 | 3 | 3 | .89223
343 | 3 | 4 | .79002
343 | 3 | 5 | 1.00182
343 | 3 | 6 | .97235
343 | 3 | 7 | .98674
343 | 3 | 8 | .99986
343 | 3 | 9 | .78942
343 | 3 | 10 | .67932
343 | 3 | 11 | .95282
343 | 3 | 12 | .94828
343 | 3 | 1 | .98772
343 | 3 | 2 | .92422
我在这里想做的是创建“期望的结果”表,以便我可以从开始日期(2014 年 11 月)开始对表 1 中的每一行进行表 2 中的列“计算 a”的总和示例),到示例中的结束日期(2/2016)。表 2 中的计算只有月份列。在本例中,我必须对第 1 个月、第 2 个月、第 11 个月和第 12 个月求和两次。
SUM(Calculation A)
group foo_id, bar
我遇到的麻烦是必须对第 1 个月、第 2 个月、第 11 个月和第 12 个月求和两次,并使其在“所需结果表”中出现两次。我需要有关此查询的帮助来创建“MySQL 中表 1 和表 2 中的“所需表”。
最佳答案
应该这样获得输出
select FOO_ID, BAR, MONTH, `CALCULATION A`
from table 2
order by field(month , 11, 12, 1, 2, 3,4, 5,6 ,7 8,9, 10)
关于mysql - 获取某个日期范围内的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37732838/