【发布时间】:2019-09-05 19:29:03
【问题描述】:
我有一张这样的桌子
Id Valid_From Valid_To
9744 24/06/2019 07/07/2019
9745 12/08/2019 31/12/9999
我想通过加入日期表,根据星期将这个表分成多行
Id Valid_from Valid_To Month Week
9744 24/06/2019 07/07/2019 June 4
9744 24/06/2019 07/07/2019 July 1
9744 24/06/2019 07/07/2019 July 2
9745 12/08/2019 31/12/9999 August 2
9745 12/08/2019 31/12/9999 August 3
9745 12/08/2019 31/12/9999 August 4
在这种情况下,将有 3 行作为有效起始和有效两个在这 3 周之间的 ID - 9744
对于 ID - 9745,Valid_to 日期是无穷大的,所以我们只需要从 valid_from 日期算起当月的所有星期
然后我只需要在输出中附加月份和周数
有人可以帮我写一个查询来得到这个输出吗?
谢谢
【问题讨论】:
-
我删除了不一致的数据库标签。请标记您真正使用的数据库。你如何定义
week?什么是“日期”表?
标签: sql sql-server date common-table-expression