我有一个装有模型的表格,模型的开始年和结束年以及分配给它的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

10-08 19:38