Sql 逐小时报表的查询数据
我的任务是写一份报告,它会显示一个条形图,其中X轴是班次的小时数,所以底部是1-8。条形图是每小时完成的事务数。所以柱状图很容易让你看到,在第一个小时我们处理了30份订单,第二个小时我们处理了25份,以此类推,直到轮班结束 不过,我很难弄清楚如何实际创建此报告。这是我做类似事情的唯一选择。请理解这只是伪代码,不要费心评论语法问题:Sql 逐小时报表的查询数据,sql,sql-server,Sql,Sql Server,我的任务是写一份报告,它会显示一个条形图,其中X轴是班次的小时数,所以底部是1-8。条形图是每小时完成的事务数。所以柱状图很容易让你看到,在第一个小时我们处理了30份订单,第二个小时我们处理了25份,以此类推,直到轮班结束 不过,我很难弄清楚如何实际创建此报告。这是我做类似事情的唯一选择。请理解这只是伪代码,不要费心评论语法问题: create table #temp ( Hour int, Units int ) insert into #temp SELECT 1 as Hour,
create table #temp
(
Hour int,
Units int
)
insert into #temp
SELECT 1 as Hour, sum(Units) Units
FROM orders
WHERE DateCreated >= '6/14/2013 08:00:00' AND DateCreated < '6/14/2013 09:00:00'
insert into #temp
SELECT 2 as Hour, sum(Units) Units
FROM orders
WHERE DateCreated >= '6/14/2013 09:00:00' AND DateCreated < '6/14/2013 10:00:00'
insert into #temp
SELECT 3 as Hour, sum(Units) Units
FROM orders
WHERE DateCreated >= '6/14/2013 11:00:00' AND DateCreated < '6/14/2013 12:00:00'
.. and so on ..
select * from #temp
此外,它位于报表调用的存储过程中
有更好的方法吗?我是否应该将一整天的数据发送到报告中,并在报告中进行处理?任何见解都将不胜感激。+1这为我提供了一种更好的获取所需数据的方法。我现在正在修补它,如果这最终解决了我的问题,我会把它标记为答案。非常感谢。
SELECT DATEPART(hh, DateCreated) AS hour, sum(Units) Units
FROM orders
WHERE DateCreated >= '6/14/2013' AND DateCreated < '6/15/2013'
GROUP BY DATEPART(hh, DateCreated)
SELECT DATEPART(dd, DateCreated) AS day, DATEPART(hh, DateCreated) AS hour, sum(Units) Units
FROM orders
WHERE DateCreated >= '6/10/2013' AND DateCreated < '6/15/2013'
GROUP BY DATEPART(dd, DateCreated), DATEPART(hour, DateCreated)