我正在寻找一个基于表输出缺少日历周的SQL语句。这是一个简短的例子。我们正在使用MySQL。我删掉了所有不相关的专栏。
+------+--------------+
| Year | CalendarWeek |
+------+--------------+
| 2012 | 1 |
| 2012 | 5 |
| 2012 | 8 |
| 2012 | 9 |
| 2012 | 51 |
| 2013 | 2 |
+------+--------------+
我想要得到的东西:
+------+--------------+
| Year | CalendarWeek |
+------+--------------+
| 2012 | 2 |
| 2012 | 3 |
| 2012 | 4 |
| 2012 | 6 |
| 2012 | 7 |
| 2012 | 10 |
| ... | ... |
| 2012 | 50 |
| 2012 | 52 |
| 2013 | 1 |
+------+--------------+
我添加了点来缩短输出。
进一步背景知识:每行中的列都是通过Java中的某些逻辑计算出来的。如果我们创建一个新行,让我们说当前日历周,我们必须检查是否需要填补空白。这是一个简单的例程。前一周有一排吗?是?很好,我们完成了。否则,计算前一周的值,插入并检查前一周。整个计划中唯一的一个循环。
如果我们从一个有多个差距的表开始,这显然会失败。在这种情况下,我们必须遍历每年的所有日历周并检查缺少的行。需要一些时间。
tl; dr 我正在尝试使用快捷方式减少到数据库的往返。