我有下表,
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 :(得分:0)
创建一个表格,其数字最多为您需要允许的最大月数:
CREATE TABLE numbers (
num INT PRIMARY KEY
);
INSERT INTO numbers VALUES (0), (1), (2), (3), (4), (5), (6);
然后你可以加入这个表:
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;