在表格中查找缺少的日历周

时间:2013-01-08 10:39:27

标签: mysql sql

我正在寻找一个基于表输出缺少日历周的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 我正在尝试使用快捷方式减少到数据库的往返。

0 个答案:

没有答案