【发布时间】:2019-02-08 04:14:50
【问题描述】:
我有一个开始年份和一个结束年份,例如 2017 年和 2019 年。
我想在我声明的 startYear 和 endYear 之间创建一个包含 year 和 Quarter 列(例如 1、2、3、4)的表格,并且有季度,用于决赛,endYear,在 2 点停止(它总是向前看的)。
下面的示例所需输出。
year quarter
2017 1
2017 2
2017 3
2017 4
2018 1
2018 2
2018 3
2018 4
2019 1
2019 2
看起来应该很简单,除了依赖循环或 UNION 的笨拙方法或简单地将值手动插入表中之外,我什么都没有想到。
【问题讨论】:
-
为什么季度总是在最后一年的 2 之后停止?
-
最后一年是一个前瞻性的缓冲...总是 [year run] + 1, 2 个季度就足够了。
-
既然我确信你的用例会被扩展,为什么不把这个一次放到一个持久化的表中,这样你就不必再计算任何东西了。 Aaron Bertrand 为 check it out here 编写了一个很棒的脚本,而且速度超级快
-
@scsimon,只在更广泛的 SP 中使用过一次。 +1 链接虽然
-
如果只有 2-3 年,您可以随时输入它们。
标签: sql sql-server tsql