获取日期范围

时间:2016-06-09 17:43:41

标签: mysql

表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

我在这里尝试做的是创建“期望结果”表,以便我可以从表1中的每一行开始日期(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。

1 个答案:

答案 0 :(得分:0)

应该获得输出

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)