请高手指点:编写"过程降水量"SQL语句,急用!!!(100)

S

sunke520

Unregistered / Unconfirmed
GUEST, post messages is not allowed!
#1
我是D7新手,现在有个问题解决不了,请高手指点编写"过程降水量"SQL语句啊~~所谓过程降水量指1天或者连续几天有降水,允许一天无降水
 
Z

znxia

Unregistered / Unconfirmed
GUEST, post messages is not allowed!
#2
非专业认识,所以我看不懂。为了更多人能明白,建议举例说明。
 
Q

qjinshanq

Unregistered / Unconfirmed
GUEST, post messages is not allowed!
#3
直接把1天或者连续几天有降水时的降水量求和吗?对楼主的描述还是不是很清楚
 
Z

znxia

Unregistered / Unconfirmed
GUEST, post messages is not allowed!
#5
为了理解方便,我建立了一个数据表Station Date RA001 20090101 11001 20090102 0001 20090103 13001 20090104 0001 20090105 15001 20090106 16-----------------------------查询第20090106这一天的过程降水量,SQL为Select Station, Min(Date) as MinDate, Sum(RA) as SumRA, Count(Date) as DaysFrom (Select A.*, (Select Sum(Iif(RA>0,1,0)) From Test B Where B.Date>=A.Date And B.Date<=20090106 and B.Station=A.Station )AS X0, (Select Count(RA) From Test B Where B.Date>=A.Date And B.Date<=20090106 and B.Station=A.Station )AS X1, (Select Sum(RA) From Test B Where B.Date>=A.Date And B.Date<=20090106 and B.Station=A.Station )AS X2 From Test A Where Date<=20090106 )Where X0+1 >= X1Group By Station---------使用的是ACCESS,对于SQL SERVER, Sum(Iif(RA>0,1,0)) 可以更改为 Sum(Case when ra>0 then
1 else
0 end)Where X0+1 >= X1:容许其中的一条无降水量字段说明: X0:当前记录到20090106 之间的存在降水的天数 X1:当前记录到20090106 之间的天数,你也可以用函数来实现这两个日期之间的天数为了加快速度,你也可以只需要考虑最近30天内的情况,一般来说连续降水不好超过30天的,所以可以将Where Date<=20090106更改为 Where Date<=20090106 and Date>=20081206----如果还看不明白,请先查看其中的子查询的查询结果,这样便于你的理解。