Mysql查询在数据列中将行增加到达到结束年份

时间:2017-11-09 09:30:47

标签: mysql sql

我在mysql中的第一个提到的表格图像中有数据,我需要在表格二中提到的图像格式的输出。你可以建议查询相同的。我正在尝试一些工作,但无法获得所需的输出。

enter image description here

先谢谢

1 个答案:

答案 0 :(得分:0)

由于MySQL没有递归功能,您必须创建一个表格,例如Years,并根据您的数据填写年份范围(例如2010年至2017年)

创建Years表后,LEFT JOIN将其创建到您的表

declare @tbl as table (
    car varchar(15)
    ,model varchar(15)
    ,startY int
    ,endY int   
)

declare @years as table(year int)

insert into @tbl values ('audi', 'a1', 2012, 2016)

insert into @years values (2010); insert into @years values (2011)
insert into @years values (2012); insert into @years values (2013)
insert into @years values (2014); insert into @years values (2015)
insert into @years values (2016); insert into @years values (2017)

SELECT
    A.car
    ,A.model
    ,B.year as Model2
FROM @tbl A
LEFT JOIN @years B
    ON B.year BETWEEN A.startY AND A.endY