Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 逐小时报表的查询数据_Sql_Sql Server - Fatal编程技术网

Sql 逐小时报表的查询数据

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,

我的任务是写一份报告,它会显示一个条形图,其中X轴是班次的小时数,所以底部是1-8。条形图是每小时完成的事务数。所以柱状图很容易让你看到,在第一个小时我们处理了30份订单,第二个小时我们处理了25份,以此类推,直到轮班结束

不过,我很难弄清楚如何实际创建此报告。这是我做类似事情的唯一选择。请理解这只是伪代码,不要费心评论语法问题:

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)