【发布时间】:2014-11-07 06:21:25
【问题描述】:
我有下表:
示例:
create table test
(
col_dt1 date,
col_dt2 date
)
插入一些记录:
insert into test values('2014-11-07','2014-12-01');
select * from test;
col_dt1 col_dt2
----------------------
2014-11-07 2014-12-01
预期结果:
col_dt1 col_dt2 07 November 2014 08 November 2014 .................... 01 December 2014
-----------------------------------------------------------------------------------------------
2014-11-07 2014-12-01 1 0 .................... 1
我被困在获取两个日期之间的所有日期以在数据透视表中包含 stuff 列。
【问题讨论】:
-
预期输出不清楚
-
@Pradeep,有两个日期可以理解为
2014-11-07和2014-12-01给出的第一个和最后一个日期。我想显示从2014-11-07到2014-12-01的这些日期的数据透视表。它必须在列中显示这两个日期之间的所有日期。 -
所以你需要在这两个日期下的值为 1,其他日期的值应该为 0
-
@Meem 如果您的表包含多行怎么办,例如(2014 年 1 月 1 日,2014 年 1 月 31 日)。在这种情况下,期望的输出是什么?
-
@Meem 在这种情况下,您可能会考虑使用表值函数。 Pivot 用于旋转表值表达式。您作为输入的不是表值表达式。它只是两个标量日期:开始日期和结束日期。
标签: sql-server sql-server-2008-r2 pivot