添加日期列

时间:2017-10-20 13:59:52

标签: sql sql-server tsql

我有这个简单的表格:

Name
-----
test1
test2
test3

我需要建立这样的东西:

Name    Year    Month
---------------------
Test1   2016    1
Test1   2016    2
Test1   2016    3
Test1   2016    …
Test1   2016    12
Test2   2016    1
Test2   2016    2
Test2   2016    3
Test2   2016    …
Test2   2016    12
Test1   2017    1
Test1   2017    2
Test1   2017    3
Test1   2017    …
Test1   2017    12
Test2   2017    1
Test2   2017    2
Test2   2017    3
Test2   2017    …
Test2   2017    12

有人可以给我一个暗示吗?

提前致谢。

3 个答案:

答案 0 :(得分:2)

如果您没有日历表,则另一个快速选项

Select * 
 From  YourTable
 Cross Join ( values (2016),(2017) ) Y(Year)
 Cross Join ( values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12) ) M(Month)

答案 1 :(得分:0)

使用绝对无价的日历表。

这里是SentryOne的Aaron Bertrand的tutorial

答案 2 :(得分:0)

选择* 来自mytable 交叉加入dateTable

这是一个艰难的一周,感谢大家的帮助。