SQL GROUP BY 问题

来源:百度知道 编辑:UC知道 时间:2024/04/26 21:25:56
在一定时间范围内,汇总每天的产量
但是一天的统计时间是这样分的
2007-03-26 07:00:00 到 2007-03-27 07:00:00 才算一天的产量,即是26号的产量.
现在的要求就是按这样的时间段来分组汇总产量
例如:统计上2007-03-26 07:00:00 到现在的的产量,要求结果如下:
日期 产量
26 100
27 80
28 160
…… ……
在SQL Server语句中有没有办法解决这样的问题
jxuen 的SQL 语句最终返回的只是天数,SUM的产量并不是那一段时间的产量

select
datepart(dd,dateadd(dd,datediff(hh,'2007-03-26 07:00:00',getdate())/24 ,'2007-03-27 07:00:00')) 日期,sum(产量)
from table
group by 日期

你去试试

补充:我能想到的是存储过程:
create table #tmp
(
rq int,
cl numeric(18,2)
)
create proc p_test(@d_begin datetime) as
begin
declare @tmp_date datetime

while (@d_begin <= getdate())
begin
select @d_end=dateadd(dd,1,@d_begin)
insert into #tmp
select datepart(dd,@tmp_begin) 日期,sum(数量)
from table
where 时间>=@d_begin and 时间<=@d_end
group by 日期
select @d_begin=dateadd(dd,1,@d_begin)
end

select * from #tmp
end

你在看看,我这边你的环境,没法测试,希望你能理解这算法!

好象很难实现