【发布时间】:2013-06-13 03:36:08
【问题描述】:
我一直在开发一个查询。
我有一张表,结构如下:
[EventId] [Description] [EventName] [ValidFrom] [ValidTo] [Approved]
1 Sample1 1stEvent 2013-01-27 2013-05-10 1
2 Sample2 2stEvent 2013-04-07 2013-06-15 1
3 Sample3 3stEvent 2013-04-07 2013-06-15 1
4 Sample4 4stEvent 2013-03-02 2013-05-29 1
5 Sample5 5stEvent 2013-05-17 2013-07-10 1
6 Sample6 6stEvent 2013-03-20 2013-05-11 1
我想要的是一个日期范围内每个日期的事件总数,包括在内。
Select distinct
Convert(varchar,ValidFrom,101)as [Date],
case
when count(EventID)>1 then Convert(nvarchar, count(EventID)) +' Events'
else Convert(nvarchar, count(EventID)) + ' Event'
end as CountOf,
Row_Number()
over (Order By Convert(varchar,ValidFrom,101)) as RowNumber
from [Table]
where Approved=1
group by Convert(varchar,ValidFrom,101)
这是我到目前为止提出的查询,但这显示了特定日期的事件总数,不包括根据从有效日期到有效日期之间的日期继续进行的事件。
【问题讨论】:
-
你能提供想要的结果吗?不确定我是否理解您要完成的工作。
-
所以你想要基于 EventId 的总和是吗?
-
我同意@sgeddes。您应该提供一些您希望在结果集中看到的示例输出行。
标签: sql sql-server sql-server-2008 sqlite tsql