【发布时间】:2012-11-16 18:19:17
【问题描述】:
给定一个包含开始和结束日期以及它们正在发生的区域的项目表,我试图让我的结果输出给定时间间隔内每周活动项目的数量并按地区分组。
我在项目中有很多类似的记录
地区 start_date end_date 阿拉巴马州 2012-07-08 2012-08-15 德州 2012-06-13 2012-07-24 阿拉巴马州 2012-07-25 2012-09-13 德州 2012-08-08 2012-10-28 佛罗里达州 2012-07-03 2012-08-07 路易斯安那州 2012-07-14 2012-08-12 ……如果我想要一周的结果,我可以这样做
DECLARE @today datetime
SET @today ='2012-11-09'
SELECT
[Region],
count(*) as ActiveProjectCount
FROM [MyDatabase].[dbo].[Projects]
where (datecompleted is null and datestart < @today) OR (datestart < @today AND @today < datecompleted)
Group by region
order by region asc
这会产生
区域 ActiveProjectCount 阿肯色州 15 路易斯安那州 18 北达科他州 18 俄克拉荷马州 27 ...如何更改此查询以生成看起来像这样的结果
地区 10/06 10/13 10/20 10/27 阿肯色州 15 17 12 14 路易斯安那州 3 0 1 5 北达科他州 18 17 16 15 俄克拉荷马州 27 23 19 22 ...每周一次,我可以查看活动项目的总数(开始和结束日期之间的项目)
【问题讨论】:
标签: tsql pivot-table group-by