我有一个装有模型的表格,模型的开始年和结束年以及分配给它的productid
ModelNo | StartYear | EndYear | ProductID |
0 | 1997 | 2000 | 511777 |
1 | 1998 | 1998 | 511789 |
我想要的是一个SQL结果,如下所示:
ProductID | Profile
511777 | 0-1997,0-1998,0-1999,0-2000
511789 | 1-1998
如果有人对我如何实现这一目标有任何想法。
德罗特
最佳答案
您需要加入辅助numbers table(包含顺序整数)以将范围内的缺失数字带入。即,类似
... FROM Models m
JOIN Numbers n ON n.number >= m.StartYear AND n.number <= m.EndYear
然后使用CONCAT获得
0-1997
和GROUP_CONCAT获得
0-1997,0-1998,0-1999,0-2000