我每5分钟就有一些数值数据(即每天288个值,以及相当多的数据).我需要编写一个可以返回每天所有值的总和的查询.所以目前这个表看起来像这样:
03/30/2010 00:01:00 -- 553
03/30/2010 00:06:00 -- 558
03/30/2010 00:11:00 -- 565
03/30/2010 00:16:00 -- 565
03/30/2010 00:21:00 -- 558
03/30/2010 00:26:00 -- 566
03/30/2010 00:31:00 -- 553
...
Run Code Online (Sandbox Code Playgroud)
这持续了'x'天,我希望查询返回'x'行数,每行包含每天所有值的总和.像这样的东西:
03/30/2010 -- <sum>
03/31/2010 -- <sum>
04/01/2010 -- <sum>
Run Code Online (Sandbox Code Playgroud)
查询将进入Dundas webpart,所以不幸的是我无法编写自定义用户函数来帮助它.所有逻辑都只需要在一个大查询中.任何帮助将不胜感激,谢谢.我正试图让它在目前使用GROUP BY和DATEPART工作,不确定它是否是正确的方法.
我不明白你如何使用DATEPART它,因为它不能只返回值的日期部分DATETIME(如果我弄错了,请纠正我)。有效的方法是使用DATEADD“null”时间并按 form 的值进行分组YYYY-MM-DD 00:00:00.000。
如果您碰巧拥有 Adventure Works 数据库,则以下查询适用于该数据库(在 SQL Server 2005 上测试)。除了使用它之外,DATEADD它与@OMG Ponies 的建议非常相似:
select
dateadd(dd, 0, datediff(dd, 0, OrderDate)) as SaleDay
, sum(taxamt) as Amount
from
Sales.SalesOrderHeader
group by
dateadd(dd, 0, datediff(dd, 0, OrderDate))
order by
SaleDay
Run Code Online (Sandbox Code Playgroud)
的想法dateadd(dd, 0, datediff(dd, 0, OrderDate))是首先获取“从时间开始到您的日期经过的天数”(-部分datediff),然后将此天数添加到“时间开始”。这给了你“新的一天的开始”。我希望这是可以理解的:)
| 归档时间: |
|
| 查看次数: |
3602 次 |
| 最近记录: |