提取任意连续7天数据累加的最大值

bingz307 2008-02-22 09:18:51
有一张表记录了从1955年到2008年的逐日降水记录,请问SQL语句怎么写才能实现如上问题查询

...全文
178 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyann 2008-02-22
  • 打赏
  • 举报
回复

ACCESS ADO访问时是JET-SQL

JET-SQL 参考 (如安装OFFICE选择帮助,则直接访问本机)
C:\Program Files\Common Files\Microsoft Shared\OFFICE11\2052\JETSQL40.CHM


JET-SQL 参考
http://download.csdn.net/source/351771

Access使用的是Jet-SQL。

JET SQL 帮助(jet4 access2000)下载地址
http://www.access911.net/index.asp?board=8&recordid=75FAB71E&tt=
== 思想重于技巧 ==
liuyann 2008-02-22
  • 打赏
  • 举报
回复

select top 7 *
from Table1 f inner join
(
select top 1 rdate
from (
SELECT a.rdate, sum(b.rainlevel) as sum7d
FROM Table1 a inner join Table1 b on
(a.rdate-b.rdate) between 0 and 6
group by a.rdate
order by 2 desc
)
) c
on f.rdate<=c.rdate
order by f.rdate desc


select top 7 *
from Table1 f ,
(
select top 1 rdate
from (
SELECT a.rdate, sum(b.rainlevel) as sum7d
FROM Table1 a inner join Table1 b on
(a.rdate-b.rdate) between 0 and 6
group by a.rdate
order by 2 desc
)
) c
where f.rdate<=c.rdate
order by f.rdate desc


效率有差别,理论是join会好一些
回,回,回,回
== 思想重于技巧 ==
liuyann 2008-02-22
  • 打赏
  • 举报
回复

结果

f.rdate rainlevel c.rdate
2008-01-11 3 2008-01-11
2008-01-10 2 2008-01-11
2008-01-09 1 2008-01-11
2008-01-08 3 2008-01-11
2008-01-07 2 2008-01-11
2008-01-06 1 2008-01-11
2008-01-05 2 2008-01-11

== 思想重于技巧 ==
liuyann 2008-02-22
  • 打赏
  • 举报
回复

SQL
select top 7 *
from Table1 f inner join
(
select top 1 rdate
from (
SELECT a.rdate, sum(b.rainlevel) as sum7d
FROM Table1 a, Table1 b
where (a.rdate-b.rdate) between 0 and 6
group by a.rdate
order by 2 desc
)
) c
on f.rdate<=c.rdate
order by f.rdate desc

== 思想重于技巧 ==
liuyann 2008-02-22
  • 打赏
  • 举报
回复

数据 Table1

rdate rainlevel
2008-01-01 1
2008-01-02 2
2008-01-03 3
2008-01-04 1
2008-01-05 2
2008-01-06 1
2008-01-07 2
2008-01-08 3
2008-01-09 1
2008-01-10 2
2008-01-11 3

== 思想重于技巧 ==
liuyann 2008-02-22
  • 打赏
  • 举报
回复

晚了点儿, 刚才去开会。
== 思想重于技巧 ==
bingz307 2008-02-22
  • 打赏
  • 举报
回复
liuyann你好:
如果按你1的方法做转化表结构后 SQL语句怎么写
liuyann 2008-02-22
  • 打赏
  • 举报
回复


1. 转换表结构,后用SQL可实现

1/1/2008 1
1/2/2008 2
1/3/2008 3
1/4/2008 1


2. 现有表结构,用VBA实现


=========================================================
可加入QQ群 19055578 晚19:00 - 24:00在线
=========================================================

== 思想重于技巧 ==
bingz307 2008-02-22
  • 打赏
  • 举报
回复
字段为日期 记录行为文本数字
如下

1月1日 1月2日 1月3日 。。。。。。。。。12月31日
1955年 1.5 0.8 1.9 0.0
1956年
1957年




liuyann 2008-02-22
  • 打赏
  • 举报
回复

表结构是什么?

SQL语句应该可以实现
== 思想重于技巧 ==
liuyann 2008-02-22
  • 打赏
  • 举报
回复

如果您问题已经得解决,请您及时结帖给分,以感谢帮助您的朋友。

结帖方法:点击版面右上方或右下方 <管理> ,进入页面后就可以输入密码,分别给分,结帖。
或参考:
http://www.csdn.net/help/over.asp
http://topic.csdn.net/u/20080110/19/7cb462f1-cac6-4c28-848e-0a879f4fd642.html
=============================================================================
问题解决,请及时结贴。
正确结贴方法:
管理帖子-->给分-->输入密码-->结贴
== 思想重于技巧 ==

7,732

社区成员

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

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