Office中国论坛/Access中国论坛
标题: 计算平均值 [打印本页]
作者: apeng 时间: 2005-10-11 04:04
标题: 计算平均值
[attach]13557[/attach]
想用窗体来控制计算每条记录的平均值
比如窗体中输入19:30至20:30,就计算字段19:30,19:45,20:00,20:15,20:30的平均值,显示在表中
谢谢大家
作者: LucasLynn 时间: 2005-10-11 06:21
DSum/DCount
作者: 海狸先生 时间: 2005-10-11 06:29
又是这种交叉表式的表......如果就是固定这么几个字段还好说,多了就
作者: 8888888888 时间: 2005-10-11 18:11
[em04][em07]
作者: apeng 时间: 2005-10-11 18:32
LucasLynn:可以说具体些吗,谢谢海狸先生:一共有72个字段,从06:00-24:00每小时4个,好处理吗?
作者: apeng 时间: 2005-10-11 22:42
顶起来
作者: huangxd007 时间: 2005-10-12 01:47
[em06]
作者: LucasLynn 时间: 2005-10-12 02:14
以下是引用apeng在2005-10-11 10:32:00的发言:
LucasLynn:可以说具体些吗,谢谢
海狸先生:一共有72个字段,从06:00-24:00每小时4个,好处理吗?
已经很具体了。
再具体就查这两个函数的文档吧。
作者: wanshan 时间: 2005-10-12 05:53
有一个笨办法可以解决这个问题:[attach]13581[/attach]
作者: LucasLynn 时间: 2005-10-12 20:12
以下是引用apeng在2005-10-11 10:32:00的发言:
LucasLynn:可以说具体些吗,谢谢
海狸先生:一共有72个字段,从06:00-24:00每小时4个,好处理吗?
首先你这个表这样设计非常不好。
把时间段作为字段,这样的方法导致了时间段难以比较和遍历。
较合理的方法是原始表只保留4个字段:ID,电视台,时间,数据
然后使用交叉表查询生成你现在的这个格式。
作者: apeng 时间: 2005-10-12 22:01
非常感谢各位老师的回答,谢谢谢谢我只所以这样设计表也是被迫的,因为如果按照LucasLynn的设计方法,每天的数据量将有10万行,并且需要转换数据,原始数据的格式就是我表中的格式,所以才考虑这样,无论如何,还是感谢各位
作者: LucasLynn 时间: 2005-10-12 23:02
以下是引用apeng在2005-10-12 14:01:00的发言:
非常感谢各位老师的回答,谢谢谢谢
我只所以这样设计表也是被迫的,因为如果按照LucasLynn的设计方法,每天的数据量将有10万行,并且需要转换数据,原始数据的格式就是我表中的格式,所以才考虑这样,无论如何,还是感谢各位
你有这么多条记录,你现在要计算某段的平均值,那到底是对一条记录,还是对多条记录,还是对整个表?
作者: apeng 时间: 2005-10-12 23:07
wanshan的方法得到的结果是我想要的
作者: LucasLynn 时间: 2005-10-13 17:28
以下是引用apeng在2005-10-12 15:07:00的发言:
wanshan的方法得到的结果是我想要的
72个字段……
不过能解决就好。[em05]
[此贴子已经被作者于2005-10-13 9:30:50编辑过]
作者: zhuyiwen 时间: 2005-10-26 21:33
<DIV class=quote>以下是引用apeng在2005-10-10 20:04:00的发言:
[attach]13813[/attach]
Private Sub ChangeQry()
Dim qdfTemp As QueryDef
Dim st As String
Dim en As String
Dim c As Integer
Dim k As Integer
Dim x As Integer
Dim sql As String
Dim ss As String
If Not (IsNull(s) Or IsNull(e)) Then
sql = "SELECT ID, 字段1"
c = 1
If e > s Then
st = s
en = e
Else
st = e
en = s
End If
ss = "[" & st & "]"
sql = sql & ", " & ss
Do While st < en
k = Val(Mid(st, 1, 2))
x = Val(Mid(st, 4, 2)) + 15
k = k + x \ 60
x = x Mod 60
st = Format(k, "00") & ":" & Format(x, "00")
c = c + 1
ss = ss & " + [" & st & "]"
sql = sql & ", " & " [" & st & "]"
'Debug.Print st, c, ss, sql
Loop
sql = sql & ", " & "(" & ss & ")/" & c & " AS 平均收视率 FROM 报告备份;"
'Debug.Print sql
Set qdfTemp = CurrentDb.QueryDefs("查询1")
qdfTemp.sql = sql
Me.Child6.SourceObject = ""
Me.Child6.SourceObject = "查询.查询1"
End If
End Sub
[此贴子已经被作者于2005-10-26 13:37:30编辑过]
作者: apeng 时间: 2005-10-26 21:59
谢谢朱总出手,谢谢,学习中
作者: chenaisi 时间: 2005-12-15 17:13
我也想知道
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |