给定时间间隔,查询前后间隔的值,然后加总

k440w0 2009-07-09 02:29:49
向各位请教了,帮帮忙~~~~小弟感激不尽~

现在有如下表:
表1
类型 时间 数量
A 2008.7.1 100
A 2008.7.2 101
A 2008.7.3 102
A 2008.7.4 103
A 2008.7.5 104
A 2008.7.6 105
A 2008.7.7 106
B 2008.7.1 100
B 2008.7.2 101
B 2008.7.3 102
B 2008.7.4 103
B 2008.7.5 104
B 2008.7.6 105
B 2008.7.7 106

表2
类型 时间
A 2008.7.3
A 2008.7.6
B 2008.7.2
B 2008.7.5

现在想得到的结果是

类型 时间 数量
A 2008.7.3 306
A 2008.7.6 315
B 2008.7.2 303
B 2008.7.5 312

就是表1中对应表2中的日期,然后把前后各一天(或者2天,3天等)的数据也加总起来,
比如A类型2008.7.3的306=101+102+103,即表1中A类型的7.1+7.2+7.3的数量加总起来
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2009-07-09
  • 打赏
  • 举报
回复
SELECT a.类型,a.时间,sum(b.数量) from tty2 a
left join tty1 b on a.类型=b.类型 and
(b.时间 between dateadd('d',-1,a.时间) and dateadd('d',1,a.时间))
group by a.类型,a.时间
ACMAIN_CHM 2009-07-09
  • 打赏
  • 举报
回复

或者

select a.类型,a.时间,sum(b.数量)
from 表2 a inner join (
select 类型,时间,数量
from 表1
union all
select 类型,时间-1,数量
from 表1
union all
select 类型,时间+1,数量
from 表1
) b on a.类型=b.类型 and a.时间=b.时间


ACMAIN_CHM 2009-07-09
  • 打赏
  • 举报
回复
select a.类型,a.时间,b1.数量+b2.数量+b3.数量
from ((表2 a inner join 表1 b1 on a.类型=b1.类型 and a.时间=b1.时间)
inner join 表1 b2 on a.类型=b2.类型 and a.时间=b2.时间-1)
inner join 表1 b3 on a.类型=b3.类型 and a.时间=b3.时间-1


k440w0 2009-07-09
  • 打赏
  • 举报
回复
晚上回来试试行不行吧~~~~

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧