2015-02-09 19 views
0

我有下面的表中的單個記錄轉換爲多條記錄,如何紅移或MySQL

Project | # of Months | Monthly Fee | Start Date 
a  |  3  | 1000   | 1/1/2015 

我想根據月數的單排表轉換上述多個行,我們得到收入。例如。如果合同從1月1日開始,爲期3個月,那麼應該有3行,每個月我們都可以得到收入。我將如何做到這一點?

Project| Fee | Month 
a  | 1000 | 1/1/2015 
a  | 1000 | 2/1/2015 
a  | 1000 | 3/1/2015 

回答

0

創建數字到月的最大數量,你需要讓一個表:

INSERT INTO new_table (project, fee, month) 
SELECT project, monthly_fee, DATE_ADD(start_date, INTERVAL num MONTH) 
FROM old_table 
JOIN numbers ON num < num_of_months; 

CREATE TABLE numbers (
    num INT PRIMARY KEY 
); 
INSERT INTO numbers VALUES (0), (1), (2), (3), (4), (5), (6); 

然後你可以用這個表連接