【发布时间】:2015-01-13 20:18:29
【问题描述】:
我有一个返回以下内容的函数:
Title Start End
Task A 2015-01-02 2015-03-31
Task B 2015-02-12 2015-04-01
Task C 2014-11-01 2015-02-05
....
我想为每个月返回一列,如果它在开始和结束期间内返回 1,否则返回 0
Title Start End Jan Feb Mar Apr May Jun ....
Task A 2015-01-02 2015-03-31 1 1 1 0 0 0
Task B 2015-02-12 2015-04-01 0 1 1 1 0 0
Task C 2014-11-01 2015-02-05 1 1 0 0 0 0
....
有人知道怎么做吗?
【问题讨论】:
-
你问的是所谓的 PIVOT 表。如果你稍微看一下,你就会找到答案。或者至少如何开始解决您的问题,然后如果您仍然无法发布您尝试过的查询,我们将帮助您解决它
-
开始日期和结束日期是否可以在不同年份,或者您是否将查询限制为一年?
-
这不是数据透视表。我没有诸如 Jan、Feb 等数据可供参考。只需根据开始和结束日期创建列
-
当您创建月度数据时,您将拥有这些行进行透视。你必须做这一步,但如果你想把这些行变成列,你就必须旋转,别无他法。
-
日期在一年内(本例中为 2015 年)。可以假设一月,二月...列是固定的
标签: sql sql-server tsql date datetime