2016-06-09 123 views
0

表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中的每一行上從開始日期(示例中的11/2014)到表2中的列'計算a'的總和到結束數據庫e(2/2016)在這個例子中。表2中的計算僅有一個月的列。在這個例子中,我必須總結第一個月,第二個月,第十一個月和第十二個月。

SUM(Calculation A) 
group foo_id, bar 

在哪裏我有是有總結過一個月1,第2個月,第11個月,而本月12日兩次,得到它的「理想結果表中出現兩次的麻煩。我需要與此查詢幫助創建一個從表1和表2中的「期望表」在MySQL。

+0

那些沒有mysql的日期,所以你想要的東西不是(容易)成爲可能。由於它們不是mysql日期,因此不能直接使用任何內置的mysql日期/時間processinig功能和y我們的查詢最終會變得非常難看。 –

+0

它們是實際表中的mysql日期,就好像這是表1中的日期列一樣。年份是表中的第一個。 – user1431118

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