如何将单个记录转换为redshift或mysql中的多个记录

时间:2015-02-09 22:10:47

标签: 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

1 个答案:

答案 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;