如果查询最近7天的数据总和(100分)

  • 主题发起人 主题发起人 crazyD
  • 开始时间 开始时间
C

crazyD

Unregistered / Unconfirmed
GUEST, unregistred user!
2006-06-08 00:00:00.000 1
2006-06-09 00:00:00.000 4
2006-06-10 00:00:00.000 8
2006-06-11 00:00:00.000 10
2006-06-14 00:00:00.000 25

也就是按日期分组求和 ,但是要把7天之内的数据做累加

SQLserver数据库 如何写SQL语句
 
var
d1,d2:TadteTime:
begin
d1:=Now-7;
d2:=Now;
Query1.close;
Query1.sql.clear;
Query1.sql.add('select sum(SevenDays) as SevenDays from TableName where Date1>=:d1 and Date1<=:d2');
Query1.ParamByName('d1').asDateTime:=d1;
Query2.ParamByName('d2').asDateTime:=d2;
Query2.Open;
end;
 
select DATENAME(ww,'2006-01-10')
这个函数的返回值是第几周,可能对你有用。你可以用它对你的日期做运算,
如果你的日期是连续的,而且能按周做计算的话。
如果不是,那可能要麻烦了,要写存储过程了
 
不想写函数, 这样是单条记录作处理效率差, 我就想批量处理。

业务理解不对, 举个例子:
我1号卖出2个货物 2号2个 3号2个


但是我在3号统计最近7天的销售数量就应该是6个
 
select DATENAME(ww,p.日期) as aaa,sum(p.次数) as 总次数
from demo2 p
group by DATENAME(ww,p.日期)
 
select (Select SUM(次数) from demo2 where (日期 between p.日期 and p.日期+7)) as 总次数
from demo2 p
order by 日期 desc
 
SELECT SUM(个数) FROM TableName
where time between '替换为开始时间' and '替换为结束时间'
这样可以统计任意时间段内的个数和,
其他分日期段取值可参考SQL server中日期时间函数在Where中进行处理。
 
select sum(合计字段) as 货物数量 from tablename where convert(varchar(10),datefield,120)>convert(varchar(10),dateadd(d,-7,getdate()),120) and convert(varchar(10),datefield,120)<=convert(varchar(10),getdate(),120)
 
http://www.139chat.com/?user=dwxdzx
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部